#! /usr/bin/env bash

CMD=$(basename $0)
ARGS=""

usage(){
	echo -e "\nUsage:\n  $CMD [options] <subcommand> [subcommand options] <args>\n"
  	echo "  Options:"
  	echo "  -h, --help            Display this help message"
	echo -e "\nAvailable subcommands:\n"
	for sub in ~/.groupthink/${CMD}-cli/bin/*
	do
		echo "  - $( basename ${sub} )"
	done
	echo -e "\n"
}

if [[ $# -eq 0 ]]; then
  usage
  exit 1
fi

# Convert known long options to short options
for arg in "$@"; do
  shift
  case "$arg" in
    --help)
			set -- "$@" "-h"
			;;
    *)
			set -- "$@" "$arg"
			;;
  esac
done

# Reset to beginning of arguments
OPTIND=1

# Process option flags
while getopts ":h" opt; do
	case "$opt" in
		h )
			usage
			exit 0
			;;
		\? )
			echo -e "Unrecognized option: -$OPTARG\n"
			usage
			exit 1
			;;
	esac
done
shift $((OPTIND -1))


# Find subcommands and subcommand arguments
SUB=$1; shift
for var in "$@"; do
	if [[ $var == \-* ]]
	then
		ARGS+="$var "
	else
		ARGS+="\"$var\" "
	fi
done

eval "~/.groupthink/${CMD}-cli/bin/${SUB} ${ARGS}"
