#!/bin/bash -euE . libremessages cmd=${0##*/} usage() { echo "Usage: $cmd [git-commit OPTIONS]" echo 'Commits to a package (run from the package directory).' echo '' echo 'This is the same as `git commit`, but cascades up out of the' echo 'submodule.' echo '' echo 'Options:' echo ' -h Show this message' echo '' echo ' ====================== `git commit` usage ======================' echo '' git commit -h } main() { if in_array '-h' "$@"; then usage return 0 fi if ! git rev-parse --git-dir &>/dev/null; then error "Must be in a package (git) directory" return 1 fi cd "$(git rev-parse --show-cdup)" git commit "$@" git push local msg="$(git log -n1 --pretty=format:%B)" local dir="$(pwd)" cd .. git add "${dir##*/}" git commit -m "$msg" } main "$@"