#!/bin/bash
#########################################################
# 							#
# This is BashStyle-NG  				#
#							#
# Licensed under GNU GENERAL PUBLIC LICENSE v3    	#
#							#
# Copyright 2007 - 2013 Christopher Bratusek		#
#							#
#########################################################

. gettext.sh
TEXTDOMAIN="bs-ng-wizard"

source $BSNG_RC_DIR/internal/misc
source $BSNG_RC_DIR/wizard/ini
CURRENT_WIZARD=2

if [[ ! -e $HOME/.bs-ng-wizard.ini ]]; then
	if [[ ! -f ${HOME}/.bs-ng-wizard.ini ]]; then
		if [[ -f /etc/bs-ng-wizard_vendor.ini ]]; then
			cp /etc/bs-ng-wizard_vendor.ini ${HOME}/.bs-ng-wizard.ini
			STAGE=KEEP
		else
			cp ${BSNG_DATA_DIR}/bashstyle-ng/bs-ng-wizard.ini ${HOME}/.bs-ng-wizard.ini
			STAGE=INIT
		fi
	fi
elif [[ $(wizard_get ini_version) < $CURRENT_WIZARD ]]; then
	STAGE=UPDATE
elif [[ $(wizard_get ini_version) == $CURRENT_WIZARD ]]; then
	STAGE=KEEP
fi

MODULES=( basic cdwriter git lscd reprepro svn user updates )
for mod in ${MODULES[@]}; do
	source $BSNG_RC_DIR/wizard/$mod
done

if [[ $1 == *force ]]; then
	cp $BSNG_DATA_DIR/bashstyle-ng/bs-ng-wizard.ini $HOME/.bs-ng-wizard.ini
	STAGE=INIT
	shift
fi

export RC_FILE=$HOME/.bs-ng-wizard.ini

case $STAGE in

	INIT )
		CONF_MODULES=ALL
	;;

	UPDATE )
		CONF_MODULES=$(seq $(($(wizard_get ini_version)+1)) $CURRENT_WIZARD)
	;;

	KEEP )
		exit 0
	;;

esac

for mod in $CONF_MODULES ; do
	case $mod in

		ALL )
			wizard_start
			wizard_base
			wizard_lscd
			wizard_cdwriter
			wizard_git_base
			wizard_git_accounts
			wizard_svn_accounts
			wizard_reprepro
			wizard_user
			update_wizard_2
			wizard_end
		;;

		2 )
			update_wizard_2
		;;

	esac
done
