#!/bin/bash
function display_error() {
	if [ command -v tput >/dev/null 2>&1 ]; then
		tput sgr0
		tput setaf 1
		echo "ERROR: $1" >&2
		tput sgr0
	else
		echo "ERROR: $1" >&2
	fi
	return 1
}

function gvm() {
	if [[ "$GVM_ROOT" == "" ]]; then
		display_error "GVM_ROOT not set. Please source GVM_ROOT/scripts/gvm"
		return $?
	fi
	if [[ -d $GVM_ROOT/.git ]]; then
		mv $GVM_ROOT/.git $GVM_ROOT/git.bak ||
			display_error "Failed to move git info out of the way"
	fi
	if [[ ! -d $GVM_ROOT ]]; then
		display_error "GVM_ROOT does not exist. Please reinstall GVM"
		return $?
	fi

	mkdir -p $GVM_ROOT/logs > /dev/null 2>&1
	mkdir -p $GVM_ROOT/gos > /dev/null 2>&1
	mkdir -p $GVM_ROOT/archive > /dev/null 2>&1
	mkdir -p $GVM_ROOT/archive/package > /dev/null 2>&1
	mkdir -p $GVM_ROOT/environments > /dev/null 2>&1

	if [[ "$1" == "use" ]]; then
		. $GVM_ROOT/scripts/env/use
		shift
		gvm_use $@
	elif [[ "$1" == "implode" ]]; then
		rm -rf $GVM_ROOT
	elif [[ "$1" == "pkgset" ]] && [[ "$2" == "use" ]]; then
		. $GVM_ROOT/scripts/env/pkgset-use
		shift
		shift
		gvm_pkgset_use $@
	else
		$GVM_ROOT/bin/gvm $@
	fi
}

