forked from MapComplete/MapComplete
		
	Add crossing:markings question, file move script
				
					
				
			This commit is contained in:
		
							parent
							
								
									8d181c183a
								
							
						
					
					
						commit
						ce74412891
					
				
					 26 changed files with 385 additions and 30 deletions
				
			
		
							
								
								
									
										91
									
								
								scripts/moveImage.ts
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								scripts/moveImage.ts
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,91 @@ | |||
| import { existsSync, renameSync, readFileSync, writeFileSync } from "fs" | ||||
| import SmallLicense from "../src/Models/smallLicense" | ||||
| 
 | ||||
| /** | ||||
|  * Script to move/rename image files | ||||
|  * Useful after downloading images from wikimedia commons | ||||
|  * Apart from moving the image files, this will also update the license file | ||||
|  * | ||||
|  * This will NOT update any images in the theme | ||||
|  */ | ||||
| 
 | ||||
| function main(args: string[]) { | ||||
|     // Check if the correct number of arguments are passed
 | ||||
|     if (args.length != 2) { | ||||
|         console.log("Usage: moveImage.ts oldPath newPath") | ||||
|         console.log("You passed in the arguments: " + args.join(",")) | ||||
|         console.log("Example: npx vite-node scripts/moveImage.ts images/old.jpg images/new.jpg") | ||||
|         return | ||||
|     } | ||||
|     const [oldPath, newPath] = args | ||||
| 
 | ||||
|     // Check if the oldPath exists
 | ||||
|     if (!existsSync(oldPath)) { | ||||
|         console.log("The oldPath does not exist: " + oldPath) | ||||
|         return | ||||
|     } | ||||
| 
 | ||||
|     // Move file
 | ||||
|     renameSync(oldPath, newPath) | ||||
| 
 | ||||
|     // If it exists also move the .license file
 | ||||
|     const oldLicensePath = oldPath + ".license" | ||||
|     if (existsSync(oldLicensePath)) { | ||||
|         const newLicensePath = newPath + ".license" | ||||
|         renameSync(oldLicensePath, newLicensePath) | ||||
|     } | ||||
| 
 | ||||
|     console.log("Moved file from " + oldPath + " to " + newPath) | ||||
| 
 | ||||
|     // Open license_info.json in the same directory as the old file
 | ||||
|     const licensePath = oldPath.replace(/\/[^/]+$/, "/license_info.json") | ||||
|     if (!existsSync(licensePath)) { | ||||
|         console.log( | ||||
|             "The license file does not exist: " + | ||||
|                 licensePath + | ||||
|                 ". Skipping writing to license file." | ||||
|         ) | ||||
|         return | ||||
|     } | ||||
| 
 | ||||
|     // Read license file
 | ||||
|     const licenseFile = readFileSync(licensePath, "utf8") | ||||
|     const licenseInfo = JSON.parse(licenseFile) as SmallLicense[] | ||||
| 
 | ||||
|     // Find correct license item
 | ||||
|     const licenseItem = licenseInfo.find((item) => item.path === oldPath.replace(/.*\//, "")) | ||||
| 
 | ||||
|     // Filter out license item
 | ||||
|     const newLicenseInfo = licenseInfo.filter((item) => item.path !== oldPath.replace(/.*\//, "")) | ||||
|     const newLicenseFile = JSON.stringify(newLicenseInfo, null, 2) | ||||
| 
 | ||||
|     // Write new license file
 | ||||
|     writeFileSync(licensePath, newLicenseFile) | ||||
| 
 | ||||
|     // Look for a license_info.json file in the new path
 | ||||
|     const newLicensePath = newPath.replace(/\/[^/]+$/, "/license_info.json") | ||||
|     if (!existsSync(newLicensePath) && licenseItem) { | ||||
|         console.log("License file doesn't exist yet, creating new one: " + newLicensePath) | ||||
| 
 | ||||
|         // Create new license item
 | ||||
|         const newLicenseItem = licenseItem | ||||
|         newLicenseItem.path = newPath.replace(/.*\//, "") | ||||
| 
 | ||||
|         // Create file
 | ||||
|         writeFileSync(newLicensePath, JSON.stringify([newLicenseItem], null, 2)) | ||||
|     } else if (licenseItem) { | ||||
|         console.log("Appending to existing license file: " + newLicensePath) | ||||
| 
 | ||||
|         // Create new license item
 | ||||
|         const newLicenseItem = licenseItem | ||||
|         newLicenseItem.path = newPath.replace(/.*\//, "") | ||||
| 
 | ||||
|         // Append to existing file
 | ||||
|         const newLicenseFile = readFileSync(newLicensePath, "utf8") | ||||
|         const newLicenseInfo = JSON.parse(newLicenseFile) as SmallLicense[] | ||||
|         newLicenseInfo.push(newLicenseItem) | ||||
|         writeFileSync(newLicensePath, JSON.stringify(newLicenseInfo, null, 2)) | ||||
|     } | ||||
| } | ||||
| 
 | ||||
| main(process.argv.slice(2)) | ||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue