tj.git-extras/bin/git-release
David Hartmann 292586d96f added changelog to release as optional flag
- rewrote the flags to contain multiple
- added -c as changelog option
2014-12-06 14:43:34 -05:00

37 lines
702 B
Bash
Executable file

#!/usr/bin/env sh
hook() {
local hook=.git/hooks/$1.sh
if test -f $hook; then
echo "... $1"
. $hook
fi
}
if test $# -gt 0; then
version=$1
shift #remove version from arguments list
remote=''
hook pre-release
echo "... releasing $version"
# check for flags
while test $# != 0
do
case "$1" in
-c) git-changelog -t "$version" ;;
-r) remote=$2; shift ;;
--) shift; break;;
*) usage ;;
esac
shift
done
git commit -a -m "Release $version"
git tag $version -a -m "Release $version" \
&& git push $remote \
&& git push $remote --tags \
&& hook post-release \
&& echo "... complete"
else
echo "tag required" 1>&2 && exit 1
fi