45 lines
956 B
Bash
45 lines
956 B
Bash
4 years ago
|
#!/bin/bash
|
||
|
|
||
|
version="$1"
|
||
|
major=0
|
||
|
minor=0
|
||
|
build=0
|
||
|
|
||
|
# break down the version number into it's components
|
||
|
regex="([0-9]+).([0-9]+).([0-9]+)((-[A-Za-z]+)([0-9]+))?"
|
||
|
if [[ $version =~ $regex ]]; then
|
||
|
major="${BASH_REMATCH[1]}"
|
||
|
minor="${BASH_REMATCH[2]}"
|
||
|
build="${BASH_REMATCH[3]}"
|
||
|
patchtype="${BASH_REMATCH[5]}"
|
||
|
patchnum="${BASH_REMATCH[6]}"
|
||
|
fi
|
||
|
|
||
|
# check paramater to see which number to increment
|
||
|
if [[ "$2" == "feature" ]]; then
|
||
|
minor=$(echo $minor + 1 | bc)
|
||
|
build=0
|
||
|
patchtype=
|
||
|
patchnum=
|
||
|
elif [[ "$2" == "build" ]]; then
|
||
|
build=$(echo $build + 1 | bc)
|
||
|
patchtype=
|
||
|
patchnum=
|
||
|
elif [[ "$2" == "major" ]]; then
|
||
|
major=$(echo $major+1 | bc)
|
||
|
minor=0
|
||
|
build=0
|
||
|
patchtype=
|
||
|
patchnum=
|
||
|
elif [[ "$2" == "patch" ]]; then
|
||
|
patchnum=$(echo $patchnum + 1 | bc)
|
||
|
else
|
||
|
echo "usage: ./version.sh version_number [major/feature/build/patch]" >&2
|
||
|
|
||
|
exit -1
|
||
|
fi
|
||
|
|
||
|
# echo the new version number
|
||
|
echo "${major}.${minor}.${build}${patchtype}${patchnum}"
|
||
|
|