12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- #!/bin/bash
- # Bump version of python package in current directory.
- # Updates version in package/__init__.py, and version embedded as
- # reStructuredtext in README.
- #
- # Usage: BUMP package_name [new_version] [-c]
- # If new_version is not specified the release part of the version will
- # be incremented.
- # if -c is set it will be commited and pushed.
- bump_version () {
- commit=0
- while getopts "c" flag; do
- case $flag in
- c)
- commit=1
- ;;
- esac
- done
- shift $(($OPTIND - 1))
- package="$1"
- new_version="$2"
- [ $commit ] && git pull origin master
- current=$(python -c "
- import $package
- print($package.__version__)
- ")
- cur_major=$(echo "$current" | cut -d. -f 1)
- cur_minor=$(echo "$current" | cut -d. -f 2)
- cur_release=$(echo "$current" | cut -d. -f 3)
- if [ -z "$new_version" ]; then
- new_version="$cur_major.$cur_minor.$(($cur_release + 1))";
- new_as_tuple="($cur_major, $cur_minor, $(($cur_release + 1)))";
- fi
- new_major=$(echo "$new_version" | cut -d. -f 1)
- new_minor=$(echo "$new_version" | cut -d. -f 2)
- new_release=$(echo "$new_version" | cut -d. -f 3)
- new_as_tuple="($new_major, $new_minor, $new_release)"
- echo "$package: $current -> $new_version"
- perl -pi -e"s/(VERSION\s*=\s*)\((.+?)\);?/\$1$new_as_tuple/" \
- "$package/__init__.py"
- perl -pi -e"s/(:Version:)\s*(.+?)(\s*$)/\$1 $new_version\$3/i" README
- [ $commit ] && (
- git commit "$package/__init__.py" README \
- -m "Bumped version to $new_version";
- git push;
- )
-
- }
- if [ -z "$1" ]; then
- echo "Usage: $(basename $0) package_name [new_version]"
- exit 1
- fi
- bump_version $*
|