a better script for version update
This commit is contained in:
		
							parent
							
								
									38c0c170e7
								
							
						
					
					
						commit
						8fce62632d
					
				
					 3 changed files with 71 additions and 40 deletions
				
			
		
							
								
								
									
										70
									
								
								extra/update-version.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								extra/update-version.js
									
									
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,70 @@ | ||||||
|  | /** | ||||||
|  |  * String.prototype.replaceAll() polyfill | ||||||
|  |  * https://gomakethings.com/how-to-replace-a-section-of-a-string-with-another-one-with-vanilla-js/
 | ||||||
|  |  * @author Chris Ferdinandi | ||||||
|  |  * @license MIT | ||||||
|  |  */ | ||||||
|  | if (!String.prototype.replaceAll) { | ||||||
|  |     String.prototype.replaceAll = function(str, newStr) { | ||||||
|  | 
 | ||||||
|  |         // If a regex pattern
 | ||||||
|  |         if (Object.prototype.toString.call(str).toLowerCase() === "[object regexp]") { | ||||||
|  |             return this.replace(str, newStr); | ||||||
|  |         } | ||||||
|  | 
 | ||||||
|  |         // If a string
 | ||||||
|  |         return this.replace(new RegExp(str, "g"), newStr); | ||||||
|  | 
 | ||||||
|  |     }; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | const pkg = require("../package.json"); | ||||||
|  | const fs = require("fs"); | ||||||
|  | const child_process = require("child_process"); | ||||||
|  | const oldVersion = pkg.version; | ||||||
|  | const newVersion = process.argv[2]; | ||||||
|  | 
 | ||||||
|  | console.log("Old Version: " + oldVersion); | ||||||
|  | console.log("New Version: " + newVersion); | ||||||
|  | 
 | ||||||
|  | if (! newVersion) { | ||||||
|  |     console.error("invalid version"); | ||||||
|  |     process.exit(1); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | const exists = tagExists(newVersion); | ||||||
|  | 
 | ||||||
|  | if (! exists) { | ||||||
|  |     // Process package.json
 | ||||||
|  |     pkg.version = newVersion; | ||||||
|  |     pkg.scripts.setup = pkg.scripts.setup.replaceAll(oldVersion, newVersion); | ||||||
|  |     pkg.scripts["build-docker"] = pkg.scripts["build-docker"].replaceAll(oldVersion, newVersion); | ||||||
|  |     fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n"); | ||||||
|  | 
 | ||||||
|  |     // Process README.md
 | ||||||
|  |     fs.writeFileSync("README.md", fs.readFileSync("README.md", "utf8").replaceAll(oldVersion, newVersion)); | ||||||
|  | 
 | ||||||
|  |     //commit(newVersion);
 | ||||||
|  |     //tag(newVersion);
 | ||||||
|  | } else { | ||||||
|  |     console.log("version exists") | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function commit(version) { | ||||||
|  |     let msg = "update to " + version; | ||||||
|  |     child_process.spawnSync("git", ["commit", "-m", msg]); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function tag(version) { | ||||||
|  |     child_process.spawnSync("git", ["tag", version]); | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | function tagExists(version) { | ||||||
|  |     if (! version) { | ||||||
|  |         throw new Error("invalid version"); | ||||||
|  |     } | ||||||
|  | 
 | ||||||
|  |     let res = child_process.spawnSync("git", ["tag", "-l", version]); | ||||||
|  | 
 | ||||||
|  |     return res.stdout.toString().trim() === version; | ||||||
|  | } | ||||||
|  | @ -1,39 +0,0 @@ | ||||||
| /** |  | ||||||
|  * String.prototype.replaceAll() polyfill |  | ||||||
|  * https://gomakethings.com/how-to-replace-a-section-of-a-string-with-another-one-with-vanilla-js/
 |  | ||||||
|  * @author Chris Ferdinandi |  | ||||||
|  * @license MIT |  | ||||||
|  */ |  | ||||||
| if (!String.prototype.replaceAll) { |  | ||||||
|     String.prototype.replaceAll = function(str, newStr){ |  | ||||||
| 
 |  | ||||||
|         // If a regex pattern
 |  | ||||||
|         if (Object.prototype.toString.call(str).toLowerCase() === '[object regexp]') { |  | ||||||
|             return this.replace(str, newStr); |  | ||||||
|         } |  | ||||||
| 
 |  | ||||||
|         // If a string
 |  | ||||||
|         return this.replace(new RegExp(str, 'g'), newStr); |  | ||||||
| 
 |  | ||||||
|     }; |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
| const pkg = require('../package.json'); |  | ||||||
| const fs = require("fs"); |  | ||||||
| const oldVersion = pkg.version |  | ||||||
| const newVersion = process.argv[2] |  | ||||||
| 
 |  | ||||||
| console.log("Old Version: " + oldVersion) |  | ||||||
| console.log("New Version: " + newVersion) |  | ||||||
| 
 |  | ||||||
| if (newVersion) { |  | ||||||
|     // Process package.json
 |  | ||||||
|     pkg.version = newVersion |  | ||||||
|     pkg.scripts.setup = pkg.scripts.setup.replaceAll(oldVersion, newVersion) |  | ||||||
|     pkg.scripts["build-docker"] = pkg.scripts["build-docker"].replaceAll(oldVersion, newVersion) |  | ||||||
|     fs.writeFileSync("package.json", JSON.stringify(pkg, null, 4) + "\n") |  | ||||||
| 
 |  | ||||||
|     // Process README.md
 |  | ||||||
|    fs.writeFileSync("README.md", fs.readFileSync("README.md", 'utf8').replaceAll(oldVersion, newVersion)) |  | ||||||
| } |  | ||||||
| 
 |  | ||||||
|  | @ -20,7 +20,7 @@ | ||||||
|         "build-docker-nightly": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push", |         "build-docker-nightly": "docker buildx build --platform linux/amd64,linux/arm64,linux/arm/v7 -t louislam/uptime-kuma:nightly --target nightly . --push", | ||||||
|         "build-docker-nightly-amd64": "docker buildx build --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push", |         "build-docker-nightly-amd64": "docker buildx build --platform linux/amd64 -t louislam/uptime-kuma:nightly-amd64 --target nightly . --push", | ||||||
|         "setup": "git checkout 1.0.9 && npm install && npm run build", |         "setup": "git checkout 1.0.9 && npm install && npm run build", | ||||||
|         "version-global-replace": "node extra/version-global-replace.js", |         "update-version": "node extra/update-version.js", | ||||||
|         "mark-as-nightly": "node extra/mark-as-nightly.js" |         "mark-as-nightly": "node extra/mark-as-nightly.js" | ||||||
|     }, |     }, | ||||||
|     "dependencies": { |     "dependencies": { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in a new issue