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-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", | ||||
|         "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" | ||||
|     }, | ||||
|     "dependencies": { | ||||
|  |  | |||
		Loading…
	
		Reference in a new issue