lechnerio-git-hooks 1.1.7 → 1.1.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/hooks/post-commit +303 -292
- package/package.json +1 -1
package/hooks/post-commit
CHANGED
|
@@ -1,292 +1,303 @@
|
|
|
1
|
-
#!/bin/bash
|
|
2
|
-
|
|
3
|
-
RED='\033[0;31m'
|
|
4
|
-
GREEN='\033[0;32m'
|
|
5
|
-
YELLOW='\033[1;33m'
|
|
6
|
-
BLUE='\033[0;34m'
|
|
7
|
-
CYAN='\033[0;36m'
|
|
8
|
-
GRAY='\033[0;90m'
|
|
9
|
-
NC='\033[0m'
|
|
10
|
-
|
|
11
|
-
if [ "$_SKIP_POST_COMMIT" = "1" ]; then
|
|
12
|
-
exit 0
|
|
13
|
-
fi
|
|
14
|
-
export _SKIP_POST_COMMIT=1
|
|
15
|
-
|
|
16
|
-
DRY_RUN=${1:-false}
|
|
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
|
-
node scripts/generate-changelog.mjs 2>/dev/null
|
|
80
|
-
|
|
81
|
-
git
|
|
82
|
-
git
|
|
83
|
-
echo -e "${
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
echo -
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
echo
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
echo
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
echo
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
echo -e "${
|
|
243
|
-
echo
|
|
244
|
-
echo -
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
RED='\033[0;31m'
|
|
4
|
+
GREEN='\033[0;32m'
|
|
5
|
+
YELLOW='\033[1;33m'
|
|
6
|
+
BLUE='\033[0;34m'
|
|
7
|
+
CYAN='\033[0;36m'
|
|
8
|
+
GRAY='\033[0;90m'
|
|
9
|
+
NC='\033[0m'
|
|
10
|
+
|
|
11
|
+
if [ "$_SKIP_POST_COMMIT" = "1" ]; then
|
|
12
|
+
exit 0
|
|
13
|
+
fi
|
|
14
|
+
export _SKIP_POST_COMMIT=1
|
|
15
|
+
|
|
16
|
+
DRY_RUN=${1:-false}
|
|
17
|
+
|
|
18
|
+
# --- utility functions ---
|
|
19
|
+
|
|
20
|
+
typecheck_before_push() {
|
|
21
|
+
if [ ! -f "tsconfig.json" ]; then
|
|
22
|
+
return 0
|
|
23
|
+
fi
|
|
24
|
+
echo -e "${CYAN}🔍 Running type check before push...${NC}"
|
|
25
|
+
if npx tsc --noEmit 2>&1; then
|
|
26
|
+
echo -e "${GREEN}✅ Type check passed${NC}"
|
|
27
|
+
return 0
|
|
28
|
+
else
|
|
29
|
+
echo -e "${RED}❌ Type check failed — push aborted${NC}"
|
|
30
|
+
echo -e "${YELLOW}Fix the errors above and try again.${NC}"
|
|
31
|
+
return 1
|
|
32
|
+
fi
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
get_version() {
|
|
36
|
+
node -p "require('./package.json').version"
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
get_subpatch() {
|
|
40
|
+
local ver=$(get_version)
|
|
41
|
+
if [[ "$ver" =~ ^[0-9]+\.[0-9]+\.[0-9]+([a-z])$ ]]; then
|
|
42
|
+
echo "${BASH_REMATCH[1]}"
|
|
43
|
+
else
|
|
44
|
+
echo ""
|
|
45
|
+
fi
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
get_base_version() {
|
|
49
|
+
local ver=$(get_version)
|
|
50
|
+
echo "$ver" | sed 's/[a-z]$//'
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
next_subpatch() {
|
|
54
|
+
local current_sub=$(get_subpatch)
|
|
55
|
+
if [ -z "$current_sub" ]; then
|
|
56
|
+
echo "a"
|
|
57
|
+
else
|
|
58
|
+
echo "$current_sub" | tr 'a-y' 'b-z'
|
|
59
|
+
fi
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
set_version() {
|
|
63
|
+
local new_ver="$1"
|
|
64
|
+
node -e "
|
|
65
|
+
const fs = require('fs');
|
|
66
|
+
const pkg = JSON.parse(fs.readFileSync('package.json', 'utf8'));
|
|
67
|
+
pkg.version = '$new_ver';
|
|
68
|
+
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2) + '\n');
|
|
69
|
+
"
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
bump_and_amend() {
|
|
73
|
+
local new_ver="$1"
|
|
74
|
+
local label="$2"
|
|
75
|
+
set_version "$new_ver"
|
|
76
|
+
git add package.json
|
|
77
|
+
git commit --amend --no-edit
|
|
78
|
+
git tag -f -a "v${new_ver}" -m "v${new_ver}"
|
|
79
|
+
node scripts/generate-changelog.mjs 2>/dev/null
|
|
80
|
+
git add data/changelog.json
|
|
81
|
+
git commit --amend --no-edit --no-verify
|
|
82
|
+
git tag -f -a "v${new_ver}" -m "v${new_ver}"
|
|
83
|
+
echo -e "${GREEN}✅ $label version bumped to ${new_ver}${NC}"
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
do_push() {
|
|
87
|
+
echo -e "${YELLOW}✈️ Pushing to GitHub...${NC}"
|
|
88
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
89
|
+
echo -e "${YELLOW}[DRY RUN] Would execute: git push --follow-tags && git push --tags${NC}"
|
|
90
|
+
return
|
|
91
|
+
fi
|
|
92
|
+
typecheck_before_push || return
|
|
93
|
+
git push --follow-tags && git push --tags
|
|
94
|
+
if [ $? -eq 0 ]; then
|
|
95
|
+
echo -e "${GREEN}✅ Successfully pushed to GitHub${NC}"
|
|
96
|
+
else
|
|
97
|
+
echo -e "${RED}❌ Failed to push to GitHub${NC}"
|
|
98
|
+
fi
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
do_merge() {
|
|
102
|
+
echo -e "${YELLOW}🔄 Merging to main...${NC}"
|
|
103
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
104
|
+
echo -e "${YELLOW}[DRY RUN] Would execute: git checkout main && git merge $(git branch --show-current)${NC}"
|
|
105
|
+
return
|
|
106
|
+
fi
|
|
107
|
+
local current_branch=$(git branch --show-current)
|
|
108
|
+
git checkout main
|
|
109
|
+
git merge "$current_branch"
|
|
110
|
+
if [ $? -eq 0 ]; then
|
|
111
|
+
echo -e "${GREEN}✅ Successfully merged to main${NC}"
|
|
112
|
+
else
|
|
113
|
+
echo -e "${RED}❌ Failed to merge to main${NC}"
|
|
114
|
+
fi
|
|
115
|
+
git checkout "$current_branch"
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
do_merge_and_push() {
|
|
119
|
+
echo -e "${YELLOW}🔄 Merging to main + pushing...${NC}"
|
|
120
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
121
|
+
echo -e "${YELLOW}[DRY RUN] Would execute: git push --follow-tags && git push --tags${NC}"
|
|
122
|
+
echo -e "${YELLOW}[DRY RUN] Would execute: git checkout main && git pull && git merge <branch> && git push${NC}"
|
|
123
|
+
return
|
|
124
|
+
fi
|
|
125
|
+
typecheck_before_push || return
|
|
126
|
+
local current_branch=$(git branch --show-current)
|
|
127
|
+
echo -e "${YELLOW}✈️ Pushing ${current_branch}...${NC}"
|
|
128
|
+
if ! git push --follow-tags || ! git push --tags; then
|
|
129
|
+
echo -e "${RED}❌ Failed to push ${current_branch}${NC}"
|
|
130
|
+
return
|
|
131
|
+
fi
|
|
132
|
+
echo -e "${GREEN}✅ Pushed ${current_branch}${NC}"
|
|
133
|
+
if ! git checkout main; then
|
|
134
|
+
echo -e "${RED}❌ Failed to checkout main${NC}"
|
|
135
|
+
return
|
|
136
|
+
fi
|
|
137
|
+
if ! git pull; then
|
|
138
|
+
echo -e "${RED}❌ Failed to pull main${NC}"
|
|
139
|
+
git checkout "$current_branch"
|
|
140
|
+
return
|
|
141
|
+
fi
|
|
142
|
+
if ! git merge "$current_branch"; then
|
|
143
|
+
echo -e "${RED}❌ Failed to merge ${current_branch} into main${NC}"
|
|
144
|
+
git checkout "$current_branch"
|
|
145
|
+
return
|
|
146
|
+
fi
|
|
147
|
+
echo -e "${GREEN}✅ Merged ${current_branch} into main${NC}"
|
|
148
|
+
if ! git push; then
|
|
149
|
+
echo -e "${RED}❌ Failed to push main${NC}"
|
|
150
|
+
git checkout "$current_branch"
|
|
151
|
+
return
|
|
152
|
+
fi
|
|
153
|
+
echo -e "${GREEN}✅ Pushed main${NC}"
|
|
154
|
+
git checkout "$current_branch"
|
|
155
|
+
echo -e "${GREEN}✅ Back on ${current_branch}${NC}"
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
run_post_action() {
|
|
159
|
+
local choice
|
|
160
|
+
if [ -n "$POST_ACTION" ]; then
|
|
161
|
+
choice="$POST_ACTION"
|
|
162
|
+
elif exec < /dev/tty 2>/dev/null; then
|
|
163
|
+
echo -e "${CYAN}What would you like to do next?${NC}"
|
|
164
|
+
echo
|
|
165
|
+
echo -e "1) Push to GitHub ${YELLOW}(default)${NC}"
|
|
166
|
+
echo "2) Merge to Main"
|
|
167
|
+
echo "3) Merge to Main + Push"
|
|
168
|
+
echo -e "${GRAY}0) None${NC}"
|
|
169
|
+
echo
|
|
170
|
+
echo -n "Select option (1-3, Enter for Default or 0 to skip): "
|
|
171
|
+
read -r choice
|
|
172
|
+
choice=${choice:-1}
|
|
173
|
+
else
|
|
174
|
+
choice=0
|
|
175
|
+
fi
|
|
176
|
+
echo
|
|
177
|
+
|
|
178
|
+
case $choice in
|
|
179
|
+
1) do_push ;;
|
|
180
|
+
2) do_merge ;;
|
|
181
|
+
3) do_merge_and_push ;;
|
|
182
|
+
0) echo -e "${YELLOW}⏭️ Skipping additional actions${NC}" ;;
|
|
183
|
+
*) echo -e "${RED}❌ Invalid option. Skipping additional actions${NC}" ;;
|
|
184
|
+
esac
|
|
185
|
+
echo
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
# --- main flow ---
|
|
189
|
+
|
|
190
|
+
commit_message=$(git log -1 --pretty=%B)
|
|
191
|
+
if [[ "$commit_message" == *"Bump version"* ]] || [[ "$commit_message" == *"bump version"* ]]; then
|
|
192
|
+
echo -e "${YELLOW}⏭️ Skipping post-commit actions for version bump commit${NC}"
|
|
193
|
+
exit 0
|
|
194
|
+
fi
|
|
195
|
+
|
|
196
|
+
echo
|
|
197
|
+
echo -e "${GREEN}🎉 Commit completed successfully!${NC}"
|
|
198
|
+
echo
|
|
199
|
+
|
|
200
|
+
node scripts/generate-changelog.mjs 2>/dev/null
|
|
201
|
+
if ! git diff --quiet data/changelog.json 2>/dev/null; then
|
|
202
|
+
git add data/changelog.json
|
|
203
|
+
git commit --amend --no-edit --no-verify
|
|
204
|
+
echo -e "${CYAN}📋 Changelog updated${NC}"
|
|
205
|
+
echo
|
|
206
|
+
fi
|
|
207
|
+
|
|
208
|
+
files_changed=$(git diff --name-only HEAD~1 HEAD 2>/dev/null | wc -l)
|
|
209
|
+
lines_changed=$(git diff --shortstat HEAD~1 HEAD 2>/dev/null)
|
|
210
|
+
|
|
211
|
+
if [ "$files_changed" -eq 0 ] || [ -z "$lines_changed" ]; then
|
|
212
|
+
echo -e "${YELLOW}⚠️ No file changes detected in this commit.${NC}"
|
|
213
|
+
echo -e "${YELLOW}⏭️ Skipping version bump.${NC}"
|
|
214
|
+
echo
|
|
215
|
+
run_post_action
|
|
216
|
+
exit 0
|
|
217
|
+
fi
|
|
218
|
+
|
|
219
|
+
echo -e "${BLUE}📝 Changes in this commit:${NC}"
|
|
220
|
+
echo -e "${YELLOW}$lines_changed${NC}"
|
|
221
|
+
echo
|
|
222
|
+
|
|
223
|
+
current_ver=$(get_version)
|
|
224
|
+
base_ver=$(get_base_version)
|
|
225
|
+
sub=$(get_subpatch)
|
|
226
|
+
next_sub=$(next_subpatch)
|
|
227
|
+
|
|
228
|
+
IFS='.' read -r major minor patch_raw <<< "$base_ver"
|
|
229
|
+
patch=$((patch_raw))
|
|
230
|
+
next_patch=$((patch + 1))
|
|
231
|
+
next_minor=$((minor + 1))
|
|
232
|
+
next_major=$((major + 1))
|
|
233
|
+
|
|
234
|
+
subtle_ver="${base_ver}${next_sub}"
|
|
235
|
+
patch_ver="${major}.${minor}.${next_patch}"
|
|
236
|
+
minor_ver="${major}.${next_minor}.0"
|
|
237
|
+
major_ver="${next_major}.0.0"
|
|
238
|
+
|
|
239
|
+
if [ -n "$VERSION_BUMP" ]; then
|
|
240
|
+
version_choice="$VERSION_BUMP"
|
|
241
|
+
elif exec < /dev/tty 2>/dev/null; then
|
|
242
|
+
echo -e "${CYAN}What version bump would you like to apply?${NC}"
|
|
243
|
+
echo
|
|
244
|
+
echo -e "1) Subtle Bump ${YELLOW}(default)${NC} ${GRAY}${current_ver} -> ${subtle_ver}${NC} - typos, formatting, comments, etc."
|
|
245
|
+
echo -e "2) Bump Patch ${GRAY}${current_ver} -> ${patch_ver}${NC} - bug fixes, small changes"
|
|
246
|
+
echo -e "3) Bump Minor ${GRAY}${current_ver} -> ${minor_ver}${NC} - new features, backwards compatible"
|
|
247
|
+
echo -e "4) Bump Major ${GRAY}${current_ver} -> ${major_ver}${NC} - breaking changes"
|
|
248
|
+
echo -e "${GRAY}0) Nothing - skip version bump${NC}"
|
|
249
|
+
echo
|
|
250
|
+
echo -n "Select option (1-4, Enter for Default or 0 to skip): "
|
|
251
|
+
read -r version_choice
|
|
252
|
+
version_choice=${version_choice:-1}
|
|
253
|
+
else
|
|
254
|
+
echo -e "${YELLOW}⏭️ No TTY available and VERSION_BUMP not set, skipping version bump${NC}"
|
|
255
|
+
version_choice=0
|
|
256
|
+
fi
|
|
257
|
+
|
|
258
|
+
echo
|
|
259
|
+
|
|
260
|
+
case $version_choice in
|
|
261
|
+
1)
|
|
262
|
+
echo -e "${YELLOW}📦 Subtle bump...${NC}"
|
|
263
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
264
|
+
echo -e "${YELLOW}[DRY RUN] Would bump to ${subtle_ver}${NC}"
|
|
265
|
+
else
|
|
266
|
+
bump_and_amend "$subtle_ver" "Subtle"
|
|
267
|
+
fi
|
|
268
|
+
;;
|
|
269
|
+
2)
|
|
270
|
+
echo -e "${YELLOW}📦 Bumping patch version...${NC}"
|
|
271
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
272
|
+
echo -e "${YELLOW}[DRY RUN] Would bump to ${patch_ver}${NC}"
|
|
273
|
+
else
|
|
274
|
+
bump_and_amend "$patch_ver" "Patch"
|
|
275
|
+
fi
|
|
276
|
+
;;
|
|
277
|
+
3)
|
|
278
|
+
echo -e "${YELLOW}📦 Bumping minor version...${NC}"
|
|
279
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
280
|
+
echo -e "${YELLOW}[DRY RUN] Would bump to ${minor_ver}${NC}"
|
|
281
|
+
else
|
|
282
|
+
bump_and_amend "$minor_ver" "Minor"
|
|
283
|
+
fi
|
|
284
|
+
;;
|
|
285
|
+
4)
|
|
286
|
+
echo -e "${YELLOW}📦 Bumping major version...${NC}"
|
|
287
|
+
if [ "$DRY_RUN" = "true" ]; then
|
|
288
|
+
echo -e "${YELLOW}[DRY RUN] Would bump to ${major_ver}${NC}"
|
|
289
|
+
else
|
|
290
|
+
bump_and_amend "$major_ver" "Major"
|
|
291
|
+
fi
|
|
292
|
+
;;
|
|
293
|
+
0)
|
|
294
|
+
echo -e "${YELLOW}⏭️ Skipping version bump${NC}"
|
|
295
|
+
;;
|
|
296
|
+
*)
|
|
297
|
+
echo -e "${RED}❌ Invalid option. Skipping version bump${NC}"
|
|
298
|
+
;;
|
|
299
|
+
esac
|
|
300
|
+
|
|
301
|
+
echo
|
|
302
|
+
|
|
303
|
+
run_post_action
|