#!/bin/bash

# TODO: good codebase, need parameters and make a more generic tool

APKPKT=apk-tools-static-2.10.1-r0.apk

mirror=http://uk.alpinelinux.org/alpine/
MAINREP=/media/fast/al
CHROOT=$MAINREP/chroot
PACKAGES="vim zsh"
POSTPACKAGES="alpine-sdk git openssh openssl openssl-dev crystal"

chroot_install(){
	mkdir -p $CHROOT
	cd ${MAINREP}/

	if [ -f ${APKPKT} ]; then
		echo "apk already downloaded"
	else
		wget ${mirror}/latest-stable/main/`uname -p`/${APKPKT}
		tar -xzf ${APKPKT}
	fi

	${MAINREP}/sbin/apk.static -X ${mirror}/latest-stable/main -U --allow-untrusted --root ${CHROOT} --initdb add alpine-base $PACKAGES
	cp /etc/resolv.conf $CHROOT/etc/
	cp -r ~/.zsh* ~/.vim* ${CHROOT}/root
	echo export PS1=\"\(chroot\) \$PS1\"  >> ${CHROOT}/root/.zshrc

	cat << END > $CHROOT/etc/apk/repositories
http://uk.alpinelinux.org/alpine/latest-stable/main
http://uk.alpinelinux.org/alpine/latest-stable/community
http://uk.alpinelinux.org/alpine/edge/main
http://uk.alpinelinux.org/alpine/edge/community
END
}

chroot_mount(){
	mount -t proc /proc ${CHROOT}/proc/
	mount -o bind /sys  ${CHROOT}/sys/
	mount -o bind /dev  ${CHROOT}/dev/
}

chroot_env(){
	chroot ${CHROOT} /bin/zsh -l
}

chroot_post(){
	${MAINREP}/sbin/apk.static --root ${CHROOT} add $POSTPACKAGES
	# chroot ${CHROOT} /bin/zsh -l "apk update && apk upgrade && apk add $POSTPACKAGES"
}

ask(){
	echo -en "$1? [YyNn] (n): "
	read V ; echo $V | grep "[Yy]" >/dev/null
	if [ $? -eq 0 ] ; then
		echo -en "doing $1..." ; $1
	else
		echo "not doing $1"
	fi
}

ask chroot_install
ask chroot_mount
ask chroot_post
ask chroot_env