## lvl. 43 regex dragon awaits thee.
print_help()
{	cat << EOF
====================
 Quickbuild script
====================
Package: $PACKAGE_NAME

General environment variables:
CC:         C compiler
CFLAGS:     C compiler flags
CXX:        C++ compiler
CXXFLAGS:   C++ compiler flags
LDFLAGS:    Linker flags

General options:
--prefix=\$path: Install path prefix
--global-config-dir=\$path: System wide config file prefix
--host=HOST: cross-compile to build programs to run on HOST
--help: Show this help

Custom options:
EOF
	while IFS='=#' read VAR VAL COMMENT; do
		VAR=$(echo "${VAR##HAVE_}" | tr '[A-Z]' '[a-z]')
		case "$VAL" in
			'yes'*)
				echo "--disable-$VAR: $COMMENT";;
			'no'*)
				echo "--enable-$VAR: $COMMENT";;
			'auto'*)
				echo "--enable-$VAR: $COMMENT"
				echo "--disable-$VAR";;
			*)
				echo "--with-$VAR: $COMMENT";;
		esac
	done < 'qb/config.params.sh'
}

opt_exists() # $opt is returned if exists in OPTS
{	opt=$(echo "$1" | tr '[a-z]' '[A-Z]')
	for OPT in $OPTS; do [ "$opt" = "$OPT" ] && return; done
	print_help; exit 1
}

parse_input() # Parse stuff :V
{	OPTS=; while IFS='=' read VAR dummy; do OPTS="$OPTS ${VAR##HAVE_}"; done < 'qb/config.params.sh'
#OPTS contains all available options in config.params.sh - used to speedup
#things in opt_exists()
	
	while [ "$1" ]; do
		case "$1" in
			--prefix=*) PREFIX=${1##--prefix=};;
			--global-config-dir=*) GLOBAL_CONFIG_DIR=${1##--global-config-dir=};;
			--host=*) CROSS_COMPILE=${1##--host=}-;;
			--enable-*)
				opt_exists "${1##--enable-}"
				eval "HAVE_$opt=yes"
			;;
			--disable-*)
				opt_exists "${1##--disable-}"
				eval "HAVE_$opt=no"
			;;
			--with-*)
				arg=${1##--with-}
				val=${arg##*=}
				opt_exists "${arg%%=*}"
				eval "$opt=$val"
			;;
			-h|--help) print_help; exit 0;;
			*) print_help; exit 1;;
		esac
		shift
	done
}

. qb/config.params.sh

parse_input "$@" 
