@@ -25,7 +25,11 @@ BOLD='\033[1m'
2525NC=' \033[0m' # No Color
2626
2727usage () {
28- echo " Usage: $0 [version]"
28+ echo " Usage: $0 [OPTIONS] [version]"
29+ echo " "
30+ echo " Options:"
31+ echo " -y, --yes Skip interactive confirmation (for CI)"
32+ echo " -h, --help Show this help message"
2933 echo " "
3034 echo " If no version specified, auto-increments the pre-release number:"
3135 echo " 0.1.0-alpha.1 → 0.1.0-alpha.2"
@@ -34,6 +38,7 @@ usage() {
3438 echo " "
3539 echo " Examples:"
3640 echo " $0 # Auto-increment nightly"
41+ echo " $0 --yes # Auto-increment without confirmation (CI)"
3742 echo " $0 0.1.0-beta.1 # Start beta phase"
3843 echo " $0 0.2.0 # Stable release"
3944 echo " "
@@ -90,10 +95,17 @@ update_workspace_version() {
9095}
9196
9297main () {
93- # Handle help flag
94- if [[ " ${1:- } " == " -h" ]] || [[ " ${1:- } " == " --help" ]]; then
95- usage
96- fi
98+ local auto_confirm=false
99+ local explicit_version=" "
100+
101+ while [[ $# -gt 0 ]]; do
102+ case " $1 " in
103+ -h|--help) usage ;;
104+ -y|--yes) auto_confirm=true; shift ;;
105+ -* ) echo -e " ${RED} ERROR${NC} : Unknown option: $1 " ; usage ;;
106+ * ) explicit_version=" $1 " ; shift ;;
107+ esac
108+ done
97109
98110 # Ensure we're on master branch
99111 local current_branch
@@ -116,12 +128,12 @@ main() {
116128
117129 # Determine new version
118130 local new_version
119- if [[ $# -eq 0 ]]; then
131+ if [[ -z " $explicit_version " ]]; then
120132 # Auto-increment
121133 new_version=$( auto_increment_version " $current_version " )
122134 echo -e " ${CYAN} Auto-incrementing version...${NC} "
123135 else
124- new_version=" $1 "
136+ new_version=" $explicit_version "
125137 fi
126138
127139 # Validate
@@ -132,12 +144,14 @@ main() {
132144 echo -e " ${BOLD} New version:${NC} $new_version "
133145 echo " "
134146
135- # Confirm
136- read -p " Proceed with version bump? [y/N] " -n 1 -r
137- echo
138- if [[ ! $REPLY =~ ^[Yy]$ ]]; then
139- echo " Aborted."
140- exit 1
147+ # Confirm (skip with --yes)
148+ if ! $auto_confirm ; then
149+ read -p " Proceed with version bump? [y/N] " -n 1 -r
150+ echo
151+ if [[ ! $REPLY =~ ^[Yy]$ ]]; then
152+ echo " Aborted."
153+ exit 1
154+ fi
141155 fi
142156
143157 echo " "
@@ -148,26 +162,30 @@ main() {
148162 echo " === Syncing all manifests ==="
149163 " $SCRIPT_DIR /sync-version.sh"
150164
151- echo " "
152- echo -e " ${CYAN} ═══════════════════════════════════════════════════════════${NC} "
153- echo -e " ${CYAN} NEXT STEPS ${NC} "
154- echo -e " ${CYAN} ═══════════════════════════════════════════════════════════${NC} "
155- echo " "
156- echo " 1. Review changes:"
157- echo " git diff"
158- echo " "
159- echo " 2. Run full test suite:"
160- echo " ./test-all"
161- echo " "
162- echo " 3. Commit and tag:"
163- echo -e " ${YELLOW} git add -A && git commit -m \" chore: release v$new_version \" ${NC} "
164- echo -e " ${YELLOW} git tag v$new_version ${NC} "
165- echo -e " ${YELLOW} git push origin master --tags${NC} "
166- echo " "
167- echo " The release workflow will automatically:"
168- echo " • Build binaries for Linux, macOS, Windows"
169- echo " • Create GitHub release (marked as nightly/pre-release)"
170- echo " • Generate checksums and release notes"
165+ # Show next steps only in interactive mode
166+ if ! $auto_confirm ; then
167+ echo " "
168+ echo -e " ${CYAN} ═══════════════════════════════════════════════════════════${NC} "
169+ echo -e " ${CYAN} NEXT STEPS ${NC} "
170+ echo -e " ${CYAN} ═══════════════════════════════════════════════════════════${NC} "
171+ echo " "
172+ echo " 1. Review changes:"
173+ echo " git diff"
174+ echo " "
175+ echo " 2. Run full test suite:"
176+ echo " ./test-all"
177+ echo " "
178+ echo " 3. Commit and tag:"
179+ echo -e " ${YELLOW} git add -A && git commit -m \" chore: release v$new_version \" ${NC} "
180+ echo -e " ${YELLOW} git tag v$new_version ${NC} "
181+ echo -e " ${YELLOW} git push origin master --tags${NC} "
182+ echo " "
183+ echo " The release workflow will automatically:"
184+ echo " • Build binaries for Linux, macOS, Windows"
185+ echo " • Create GitHub release (marked as nightly/pre-release)"
186+ echo " • Generate checksums and release notes"
187+ fi
188+
171189 echo " "
172190 echo -e " ${GREEN} Version bump complete!${NC} "
173191}
0 commit comments