|
@@ -0,0 +1,66 @@
|
|
|
+#!/bin/sh
|
|
|
+
|
|
|
+#!/bin/bash
|
|
|
+
|
|
|
+# Function to display usage
|
|
|
+usage() {
|
|
|
+ echo "Usage: $0 tag"
|
|
|
+ exit 1
|
|
|
+}
|
|
|
+
|
|
|
+# Ensure a tag was provided
|
|
|
+[[ $# -eq 0 ]] && usage
|
|
|
+
|
|
|
+# Exit immediately if a command exits with a non-zero status
|
|
|
+set -e
|
|
|
+
|
|
|
+# Go to the project root directory
|
|
|
+cd "$(dirname "$0")/.."
|
|
|
+
|
|
|
+# Get the tag from the command line argument
|
|
|
+TAG=$1
|
|
|
+
|
|
|
+# Get the current branch
|
|
|
+BRANCH=$(git rev-parse --abbrev-ref HEAD)
|
|
|
+
|
|
|
+# Get the version from the pubspec.yaml file and cut everything after the +
|
|
|
+VERSION=$(grep "^version:" pubspec.yaml | awk '{ print $2 }' | cut -d '+' -f 1)
|
|
|
+
|
|
|
+
|
|
|
+# Check the current branch and set the tag prefix
|
|
|
+if [[ $BRANCH == "independent" ]]; then
|
|
|
+ PREFIX="v"
|
|
|
+elif [[ $BRANCH == "f-droid" ]]; then
|
|
|
+ PREFIX="fdroid-"
|
|
|
+ # Additional checks for f-droid branch
|
|
|
+ # Verify that the pubspec.yaml doesn't contain certain words
|
|
|
+ WORDS=("in_app_purchase" "firebase")
|
|
|
+ for word in ${WORDS[@]}; do
|
|
|
+ if grep -q $word pubspec.yaml; then
|
|
|
+ echo "The pubspec.yaml file dependency on '$word', which is not allowed on the f-droid branch."
|
|
|
+ exit 1
|
|
|
+ fi
|
|
|
+ done
|
|
|
+else
|
|
|
+ echo "Tags can only be created on the independent or f-droid branches."
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+# Ensure the tag has the correct prefix
|
|
|
+if [[ $TAG != $PREFIX* ]]; then
|
|
|
+ echo "Invalid tag. On the $BRANCH branch, tags must start with '$PREFIX'."
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+# Ensure the tag version is in the pubspec.yaml file
|
|
|
+if [[ $TAG != *$VERSION ]]; then
|
|
|
+ echo "Invalid tag."
|
|
|
+ echo "The version $VERSION in pubspec doesn't match the version in tag $TAG."
|
|
|
+ exit 1
|
|
|
+fi
|
|
|
+
|
|
|
+## If all checks pass, create the tag
|
|
|
+git tag $TAG
|
|
|
+echo "Tag $TAG created."
|
|
|
+
|
|
|
+exit 0
|