-
Notifications
You must be signed in to change notification settings - Fork 265
Expand file tree
/
Copy pathupdate_version.sh
More file actions
80 lines (65 loc) · 2.69 KB
/
Copy pathupdate_version.sh
File metadata and controls
80 lines (65 loc) · 2.69 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#!/bin/bash
set -e
# Script to update the SDK version across the codebase
# Updates: .podspec files and ONESIGNAL_VERSION
# Usage: ./update_version.sh <version>
if [ -z "$1" ]; then
echo "Error: Version number is required"
echo "Usage: ./update_version.sh <version>"
exit 1
fi
VERSION=$1
WORKING_DIR=$(pwd)
REPO_ROOT="${WORKING_DIR}/../.."
# Validate version format (supports X.Y.Z or X.Y.Z-suffix)
if ! [[ $VERSION =~ ^[0-9]+\.[0-9]+\.[0-9]+(-.*)?$ ]]; then
echo "Error: Version must be in format X.Y.Z or X.Y.Z-suffix (e.g., 5.2.15 or 5.2.3-beta-01)"
exit 1
fi
# Convert semantic version to numeric version
# Examples: "5.2.15" -> "050215", "5.2.3-beta-01" -> "050203-beta-01"
convert_to_numeric() {
local version=$1
local version_part=""
local suffix=""
# Split by dash to separate version and suffix
if [[ $version == *"-"* ]]; then
version_part="${version%%-*}"
suffix="-${version#*-}"
else
version_part="$version"
fi
# Split version by dots and pad each part to 2 digits
IFS='.' read -r major minor patch <<< "$version_part"
printf "%02d%02d%02d%s" "$major" "$minor" "$patch" "$suffix"
}
VERSION_NUMERIC=$(convert_to_numeric "$VERSION")
ONESIGNAL_PODSPEC="${REPO_ROOT}/OneSignal.podspec"
ONESIGNAL_XCFRAMEWORK_PODSPEC="${REPO_ROOT}/OneSignalXCFramework.podspec"
ONESIGNAL_COMMON_DEFINES="${WORKING_DIR}/OneSignalCore/Source/OneSignalCommonDefines.h"
echo "Updating version to ${VERSION}..."
# Update OneSignal.podspec
if [ -f "$ONESIGNAL_PODSPEC" ]; then
sed -i '' "s/s\.version[[:space:]]*=[[:space:]]*\"[^\"]*\"/s.version = \"${VERSION}\"/" "$ONESIGNAL_PODSPEC"
echo "✓ Updated OneSignal.podspec"
else
echo "Error: OneSignal.podspec not found at ${ONESIGNAL_PODSPEC}"
exit 1
fi
# Update OneSignalXCFramework.podspec
if [ -f "$ONESIGNAL_XCFRAMEWORK_PODSPEC" ]; then
sed -i '' "s/s\.version[[:space:]]*=[[:space:]]*\"[^\"]*\"/s.version = \"${VERSION}\"/" "$ONESIGNAL_XCFRAMEWORK_PODSPEC"
echo "✓ Updated OneSignalXCFramework.podspec"
else
echo "Error: OneSignalXCFramework.podspec not found at ${ONESIGNAL_XCFRAMEWORK_PODSPEC}"
exit 1
fi
# Update OneSignalCommonDefines.h
if [ -f "$ONESIGNAL_COMMON_DEFINES" ]; then
sed -i '' "s/^#define ONESIGNAL_VERSION[[:space:]]*@\"[^\"]*\"/#define ONESIGNAL_VERSION @\"${VERSION_NUMERIC}\"/" "$ONESIGNAL_COMMON_DEFINES"
echo "✓ Updated ONESIGNAL_VERSION in OneSignalCommonDefines.h to ${VERSION_NUMERIC}"
else
echo "Error: OneSignalCommonDefines.h not found at ${ONESIGNAL_COMMON_DEFINES}"
exit 1
fi
echo "Successfully updated version to ${VERSION} (numeric: ${VERSION_NUMERIC}) in all files"