#!/bin/bash
# sky completion

_get_sky_pos() {
  sky $1 --help 2>&1 >/dev/null | grep -E -o '^[ ]+[a-z]+' | xargs
}

_get_sky_opt() {
  sky $1 --help 2>&1 >/dev/null | grep -E -o ' \--[a-z_-]+' | xargs
}

_sky()
{
  cur="${COMP_WORDS[COMP_CWORD]}"

  if [[ ${COMP_CWORD} == 1 ]]; then
    _subcommands="$(_get_sky_opt) "
    _subcommands+="$(_get_sky_pos)"
    COMPREPLY=( $(compgen -W "${_subcommands}" -- ${cur}) )
    return 0
  fi

  subcmd_1="${COMP_WORDS[1]}"
  case "${subcmd_1}" in
    *)
      _subcommands="$(_get_sky_opt $subcmd_1) "
      COMPREPLY=($(compgen -W "${_subcommands}" -- ${cur}))
      return 0
      ;;
  esac

}

complete -F _sky -o default sky
