|
1 | 1 | #!/bin/bash |
2 | 2 |
|
3 | 3 | usage() { |
4 | | - echo "release.sh: VERSION" |
| 4 | + echo "Usage: release.sh [-d] VERSION" |
5 | 5 | echo "" |
6 | 6 | echo "The script does all necessary steps to create a new release." |
7 | 7 | echo "" |
| 8 | + echo " -d: no documentation update" |
| 9 | + echo "" |
8 | 10 | echo "Note: The version number needs to be exactly" |
9 | | - echo " '^v[\d]+.[\d]+(-rc[0-9]+)?$'" |
| 11 | + echo " '^v[\d]+.[\d]+(.[\d\]+(-rc[0-9]+)?$'" |
10 | 12 | echo "" |
11 | 13 | echo "example:" |
12 | 14 | echo " release.sh v2.1-rc0 # v2.1 release candidate 0" |
13 | 15 | echo " release.sh v2.1 # v2.1 release" |
14 | 16 | } |
15 | 17 |
|
16 | | -VERSION=$1 |
| 18 | +build_doc=true |
| 19 | + |
| 20 | +while getopts "d" o; do |
| 21 | + case "${o}" in |
| 22 | + d) |
| 23 | + build_doc=false |
| 24 | + ;; |
| 25 | + *) |
| 26 | + usage |
| 27 | + ;; |
| 28 | + esac |
| 29 | +done |
| 30 | +shift $((OPTIND-1)) |
| 31 | + |
| 32 | +VERSION=${1:-} |
17 | 33 |
|
18 | 34 | if [ -z "$VERSION" ] ; then |
19 | 35 | usage |
|
22 | 38 |
|
23 | 39 | ver="" |
24 | 40 |
|
25 | | -re='^v([0-9]+\.[0-9]+)(-rc[0-9]+)?$' |
| 41 | +re='^v([0-9]+\.[0-9]+(\.[0-9]+)?)(-rc[0-9]+)?$' |
26 | 42 | if [[ "$VERSION" =~ $re ]]; then |
27 | 43 | echo "Valid version $VERSION string" |
28 | | - ver=${BASH_REMATCH[1]}${BASH_REMATCH[2]} |
| 44 | + # remove the leading 'v' |
| 45 | + ver=${VERSION#v} |
29 | 46 | else |
30 | 47 | echo "Invalid version string $VERSION" |
31 | | - echo "" |
32 | | - usage |
33 | 48 | exit 1 |
34 | 49 | fi |
35 | 50 |
|
@@ -59,10 +74,12 @@ sed -i -e "0,/[ \t]version: /s/\([ \t]version: \).*/\1\'$ver\',/" meson.build |
59 | 74 | git add meson.build |
60 | 75 | git commit -s -m "build: Update version to $VERSION" |
61 | 76 |
|
62 | | -# update documentation |
63 | | -./$doc_dir/update-docs.sh |
64 | | -git add $doc_dir |
65 | | -git commit -s -m "doc: Regenerate all docs for $VERSION" |
| 77 | +if [ "$build_doc" = true ]; then |
| 78 | + # update documentation |
| 79 | + ./$doc_dir/update-docs.sh |
| 80 | + git add $doc_dir |
| 81 | + git commit -s -m "doc: Regenerate all docs for $VERSION" |
| 82 | +fi |
66 | 83 |
|
67 | 84 | git tag -s -m "Release $VERSION" "$VERSION" |
68 | 85 | git push --dry-run origin "$VERSION"^{}:master tag "$VERSION" |
|
0 commit comments