mirror of
https://github.com/tj/git-extras.git
synced 2026-09-10 07:26:17 -04:00
50 lines
906 B
Bash
Executable file
50 lines
906 B
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
hook() {
|
|
local hook=.git/hooks/$1.sh
|
|
# compat without extname
|
|
if test ! -f $hook; then
|
|
hook=.git/hooks/$1
|
|
fi
|
|
|
|
if test -f $hook; then
|
|
echo "... $1"
|
|
if test -x $hook; then
|
|
$hook
|
|
else
|
|
. $hook
|
|
fi
|
|
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 ;;
|
|
-m) msg=$2; shift ;;
|
|
--) shift; break;;
|
|
*) usage ;;
|
|
esac
|
|
shift
|
|
done
|
|
if [ -z "$msg" ]; then
|
|
msg="Release ${version}"
|
|
fi
|
|
git commit -a -m "$msg"
|
|
git tag $version -a -m "$msg" \
|
|
&& git push $remote \
|
|
&& git push $remote --tags \
|
|
&& hook post-release \
|
|
&& echo "... complete"
|
|
else
|
|
echo "tag required" 1>&2 && exit 1
|
|
fi
|