diff --git a/entrypoint.sh b/entrypoint.sh index 49f2881..8532dd9 100755 --- a/entrypoint.sh +++ b/entrypoint.sh @@ -17,22 +17,22 @@ main() { echo "could not read previous version"; exit 1 fi - possible_release_types="major feature minor bug patch hotfix alpha beta pre rc" + possible_release_types=(major feature minor bug patch hotfix alpha beta pre rc) - if [[ ! ${possible_release_types[*]} =~ ${release_type} ]]; then + if [[ ! " ${possible_release_types[*]} " =~ " ${release_type} " ]]; then echo "valid argument: [ ${possible_release_types[*]} ]"; exit 1 fi major=0; minor=0; patch=0; pre=""; preversion=0 - # break down the version number into it's components - regex="^v?([0-9]+)\.([0-9]+)\.([0-9]+)(-([a-z]+)(\.[0-9]+)?)?$" + # break down the version number into its components + regex="^v?([0-9]+)\.([0-9]+)\.([0-9]+)(-([a-z]+)(\\.([0-9]+))?)?$" if [[ $prev_version =~ $regex ]]; then major="${BASH_REMATCH[1]}" minor="${BASH_REMATCH[2]}" patch="${BASH_REMATCH[3]}" pre="${BASH_REMATCH[5]}" - preversion="${BASH_REMATCH[6]}" + preversion="${BASH_REMATCH[7]}" else echo "previous version '$prev_version' is not a semantic version" exit 1 @@ -46,54 +46,13 @@ main() { ((++minor)); patch=0; pre="";; "bug"|"patch"|"hotfix") ((++patch)); pre="";; - "alpha") - if [[ -z "$preversion" ]]; - then - preversion=0 - else - if [[ "$pre" != "-alpha" ]]; - then - preversion=1 - else ((++preversion)) - fi + "alpha"|"beta"|"pre"|"rc") + if [[ "$pre" != "$release_type" ]]; then + preversion=1 + else + ((++preversion)) fi - pre="-alpha.$preversion";; - "beta") - if [[ -z "$preversion" ]]; - then - preversion=0 - else - if [[ "$pre" != "-beta" ]]; - then - preversion=1 - else ((++preversion)) - fi - fi - pre="-beta.$preversion";; - "pre") - if [[ -z "$preversion" ]]; - then - preversion=0 - else - if [[ "$pre" != "-pre" ]]; - then - preversion=1 - else ((++preversion)) - fi - fi - pre="-pre.$preversion";; - "rc") - if [[ -z "$preversion" ]]; - then - preversion=0 - else - if [[ "$pre" != "-rc" ]]; - then - preversion=1 - else ((++preversion)) - fi - fi - pre="-rc.$preversion";; + pre="-$release_type.$preversion";; esac next_version="${major}.${minor}.${patch}${pre}"