2024-06-02 14:37:07 -04:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
# Fail out if any step has an error
|
|
|
|
set -e
|
|
|
|
|
|
|
|
if [ "$1" == "patch" ]; then
|
|
|
|
echo Bumping patch version
|
|
|
|
PART=patch
|
|
|
|
elif [ "$1" == "minor" ]; then
|
|
|
|
echo Bumping minor version
|
|
|
|
PART=minor
|
|
|
|
elif [ "$1" == "major" ]; then
|
|
|
|
echo Bumping major version
|
|
|
|
PART=major
|
|
|
|
else
|
|
|
|
echo Unsupported part! Specify 'patch', 'minor', or 'major'
|
|
|
|
exit 1
|
|
|
|
fi
|
|
|
|
|
|
|
|
# Function to increment the build code
|
|
|
|
increment_buildcode() {
|
|
|
|
local current_version=$1
|
|
|
|
local major_minor_patch=${current_version%+*}
|
|
|
|
local buildcode=${current_version#*+}
|
|
|
|
local new_buildcode=$((buildcode + 1))
|
|
|
|
echo "${major_minor_patch}+${new_buildcode}"
|
|
|
|
}
|
|
|
|
|
|
|
|
# Function to get the current version from pubspec.yaml
|
|
|
|
get_current_version() {
|
2024-06-02 14:50:47 -04:00
|
|
|
awk '/^version: / { print $2 }' pubspec.yaml
|
2024-06-02 14:37:07 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
# Function to update the version in pubspec.yaml
|
|
|
|
update_version() {
|
|
|
|
local new_version=$1
|
2024-06-02 15:03:10 -04:00
|
|
|
|
|
|
|
if [[ "$OSTYPE" == "darwin"* ]]; then
|
|
|
|
SED_CMD="sed -i ''"
|
|
|
|
else
|
|
|
|
SED_CMD="sed -i"
|
|
|
|
fi
|
|
|
|
eval "$SED_CMD 's/version: .*/version: ${new_version}/' pubspec.yaml"
|
2024-06-02 14:37:07 -04:00
|
|
|
}
|
|
|
|
|
|
|
|
# I pray none of this errors! - I think it should popup an error should that happen..
|
|
|
|
|
|
|
|
current_version=$(get_current_version)
|
|
|
|
|
|
|
|
echo "Current Version: $current_version"
|
|
|
|
|
|
|
|
# Bump the major, minor, or patch version using bump2version
|
2024-06-02 14:48:45 -04:00
|
|
|
bump2version --current-version $current_version $PART
|
2024-06-02 14:37:07 -04:00
|
|
|
|
|
|
|
# Get the new version after bump2version
|
|
|
|
new_version=$(get_current_version)
|
|
|
|
|
|
|
|
# Preserve the current build code
|
|
|
|
buildcode=${current_version#*+}
|
|
|
|
new_version="${new_version%+*}+${buildcode}"
|
|
|
|
|
|
|
|
# Increment the build code
|
|
|
|
final_version=$(increment_buildcode $new_version)
|
|
|
|
|
|
|
|
# Update pubspec.yaml with the final version
|
|
|
|
update_version $final_version
|
|
|
|
|
|
|
|
# Print the final version
|
|
|
|
echo "New Version: $final_version"
|
|
|
|
|
|
|
|
#git add pubspec.yaml
|
|
|
|
#git commit -m "Bump version to $final_version"
|
|
|
|
#git tag "v$final_version"
|
|
|
|
|