tangled
alpha
login
or
join now
atscan.net
/
plcbundle
A Transparent and Verifiable Way to Sync the AT Protocol's PLC Directory
14
fork
atom
overview
issues
2
pulls
pipelines
bump-version script
tree.fail
3 months ago
bba9a107
4c39613d
+72
1 changed file
expand all
collapse all
unified
split
scripts
bump-version.sh
+72
scripts/bump-version.sh
···
1
1
+
#!/bin/bash
2
2
+
3
3
+
set -e
4
4
+
5
5
+
# Colors
6
6
+
RED='\033[0;31m'
7
7
+
GREEN='\033[0;32m'
8
8
+
YELLOW='\033[1;33m'
9
9
+
NC='\033[0m' # No Color
10
10
+
11
11
+
# Check if git is clean
12
12
+
if [[ -n $(git status -s) ]]; then
13
13
+
echo -e "${RED}Error: Git working directory is not clean${NC}"
14
14
+
echo "Please commit or stash your changes first"
15
15
+
exit 1
16
16
+
fi
17
17
+
18
18
+
# Get current version from git tags
19
19
+
CURRENT_VERSION=$(git describe --tags --abbrev=0 2>/dev/null || echo "v0.0.0")
20
20
+
21
21
+
# Remove 'v' prefix if present
22
22
+
CURRENT_VERSION=${CURRENT_VERSION#v}
23
23
+
24
24
+
# Parse version
25
25
+
IFS='.' read -r -a VERSION_PARTS <<< "$CURRENT_VERSION"
26
26
+
MAJOR="${VERSION_PARTS[0]}"
27
27
+
MINOR="${VERSION_PARTS[1]}"
28
28
+
PATCH="${VERSION_PARTS[2]}"
29
29
+
30
30
+
# Bump version based on argument
31
31
+
case "$1" in
32
32
+
major)
33
33
+
MAJOR=$((MAJOR + 1))
34
34
+
MINOR=0
35
35
+
PATCH=0
36
36
+
;;
37
37
+
minor)
38
38
+
MINOR=$((MINOR + 1))
39
39
+
PATCH=0
40
40
+
;;
41
41
+
patch)
42
42
+
PATCH=$((PATCH + 1))
43
43
+
;;
44
44
+
*)
45
45
+
echo "Usage: $0 {major|minor|patch}"
46
46
+
exit 1
47
47
+
;;
48
48
+
esac
49
49
+
50
50
+
NEW_VERSION="v${MAJOR}.${MINOR}.${PATCH}"
51
51
+
52
52
+
echo -e "${YELLOW}Current version: ${CURRENT_VERSION}${NC}"
53
53
+
echo -e "${GREEN}New version: ${NEW_VERSION}${NC}"
54
54
+
echo ""
55
55
+
56
56
+
# Confirm
57
57
+
read -p "Create tag ${NEW_VERSION}? (y/N) " -n 1 -r
58
58
+
echo
59
59
+
if [[ ! $REPLY =~ ^[Yy]$ ]]; then
60
60
+
echo "Cancelled"
61
61
+
exit 0
62
62
+
fi
63
63
+
64
64
+
# Create git tag
65
65
+
git tag -a "${NEW_VERSION}" -m "Release ${NEW_VERSION}"
66
66
+
67
67
+
echo -e "${GREEN}✓ Created tag ${NEW_VERSION}${NC}"
68
68
+
echo ""
69
69
+
echo "To push the tag, run:"
70
70
+
echo " git push origin ${NEW_VERSION}"
71
71
+
echo ""
72
72
+
echo "Or use 'make release' to push automatically"