#!/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 "$@"