6480e7a5407cea7995fe6610fd2b289b3702a881
[packages/trusty/python-eventlet.git] / python-eventlet / bin / release
1 #!/bin/bash -e
2 cd "$( dirname "${BASH_SOURCE[0]}" )/.."
3 if [[ ! -d venv-release ]]; then
4         virtualenv venv-release
5         echo '*' >venv-release/.gitignore
6         venv-release/bin/pip install wheel sphinx
7 fi
8 . $PWD/venv-release/bin/activate
9 pip install -e $PWD
10
11 main() {
12         branch="${1-$(git symbolic-ref --short HEAD)}"
13         version="$(python -c 'import eventlet; print(eventlet.__version__)')"
14         printf "branch: %s version: '%s'\n" $branch $version >&2
15         if [[ "$branch" != "master" ]]; then
16                 echo "Must be on master" >&2
17                 exit 1
18         fi
19         if [[ -n "$(git status --short -uall)" ]]; then
20                 echo "Tree must be clean" >&2
21                 exit 1
22         fi
23         confirm "Continue? [yN] " || exit 1
24
25         if ! git tag "v$version"; then
26                 echo "tag failed" >&2
27                 confirm "Continue still? [yN] " || exit 1
28         fi
29
30         if confirm "Upload to PyPi? [Yn] "; then
31                 rm -rf build dist
32                 python setup.py sdist bdist_wheel register upload
33         fi
34
35         bin/build-website.bash
36
37         git push origin master
38         git push --tags
39         git push origin gh-pages
40 }
41
42 confirm() {
43         read -n1 -p "$1" reply
44         echo ""
45         rc=0
46         [[ "$reply" != "y" ]] && rc=1
47         return $rc
48 }
49
50 main "$@"