#!/usr/bin/env zsh

_omz_git_commit() {
  0=${(%):-%x}
  if [[ "$0" != */git-* ]]; then
    echo >&2 "Expecting command named git-foo. Got '$0'."
    return 1
  fi

  local _type="${0##*/git-}"
  local _scope _attention _message
  while [ $# -ne 0 ]; do
  case $1 in
    -s | --scope )
      if [ -z $2 ]; then
        echo >&2 "Missing scope!"
        return 1
      fi
      _scope="$2"
      shift 2
      ;;
    -a | --attention )
      _attention="!"
      shift 1
      ;;
    * )
      _message="${_message} $1"
      shift 1
      ;;
  esac
  done
  git commit -m "${_type}${_scope:+(${_scope})}${_attention}:${_message}"
}
_omz_git_commit "$@"