@@ -120,10 +120,67 @@ function package() {
120
120
)
121
121
}
122
122
123
+ /* START SECTION: Update version */
124
+ // helper function to get the version passed in
125
+ function parseArgs ( ) {
126
+ const args = process . argv . slice ( 1 )
127
+
128
+ for ( let i = 0 ; i < args . length ; i ++ ) {
129
+ if ( ( args [ i ] === '-v' || args [ i ] == '--version' ) && i + 1 < args . length ) {
130
+ return args [ i + 1 ]
131
+ }
132
+ }
133
+
134
+ return null
135
+ }
136
+
137
+ function updatePackageJsonVersion ( version ) {
138
+ const packageJsonPath = 'package.json'
139
+
140
+ if ( ! fs . existsSync ( packageJsonPath ) ) {
141
+ console . error ( 'Error: package.json not found' )
142
+ process . exit ( 1 )
143
+ }
144
+
145
+ const pkgRaw = fs . readFileSync ( packageJsonPath , 'utf-8' )
146
+ const pkg = JSON . parse ( pkgRaw )
147
+ pkg . version = version
148
+
149
+ fs . writeFileSync (
150
+ packageJsonPath ,
151
+ JSON . stringify ( pkg , null , 2 ) + '\n' ,
152
+ 'utf-8'
153
+ )
154
+ console . log ( `package.json version updated to ${ version } ` )
155
+ }
156
+
157
+ function updateVersionFile ( version ) {
158
+ fs . writeFileSync ( 'VERSION' , version + '\n' , 'utf-8' )
159
+ console . log ( `VERSION updated to ${ version } ` )
160
+ }
161
+
162
+ function updateVersion ( ) {
163
+ let newVersion = parseArgs ( )
164
+
165
+ if ( ! newVersion ) {
166
+ console . error ( 'Error: Please provide a version using -v or --version' )
167
+ process . exit ( 1 )
168
+ }
169
+
170
+ if ( newVersion . startsWith ( 'v' ) ) {
171
+ newVersion = newVersion . slice ( 1 )
172
+ }
173
+
174
+ updatePackageJsonVersion ( newVersion )
175
+ updateVersionFile ( newVersion )
176
+ }
177
+ /* END SECTION: Update version */
178
+
123
179
module . exports = {
124
180
genVersionTS : genVersionTS ,
125
181
nodeclean : nodeclean ,
126
182
scalaclean : scalaclean ,
183
+ updateVersion : updateVersion ,
127
184
watch : watch ,
128
185
package : package ,
129
186
}
0 commit comments