forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			53 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
	
		
			1.8 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import ScriptUtils from "./ScriptUtils"
 | |
| import { Utils } from "../src/Utils"
 | |
| import * as fs from "fs"
 | |
| 
 | |
| async function main(args: string[]) {
 | |
|     let directory = "./langs"
 | |
| 
 | |
|     {
 | |
|         const dirs = ["layers", "themes", "shared-questions"]
 | |
|         for (const dir of dirs) {
 | |
|             const layerIndex = args.findIndex((s) => s === "--" + dir)
 | |
|             if (layerIndex >= 0) {
 | |
|                 directory = "./langs/" + dir
 | |
|                 args.splice(layerIndex, 1)
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     if (args.length !== 1) {
 | |
|         console.log(
 | |
|             "Usage: first argument is the fully qualified key of the string to remove. Removes translations in the core translations, unless '--layers' or '--themes' is given"
 | |
|         )
 | |
|         return
 | |
|     }
 | |
| 
 | |
|     // Path within the JSON which will be removed - not the path in the filesystem!
 | |
|     const path = args[0].split(".")
 | |
|     console.log("Removing translation string ", path, "from the translations for " + directory)
 | |
|     const files = ScriptUtils.readDirRecSync(directory, 1).filter((f) => f.endsWith(".json"))
 | |
|     const removedLanguages: string[] = []
 | |
|     for (const file of files) {
 | |
|         const rawContents = fs.readFileSync(file, { encoding: "utf-8" })
 | |
|         const json = JSON.parse(rawContents)
 | |
|         Utils.WalkPath(path, json, (found) => {
 | |
|             removedLanguages.push(file)
 | |
|             console.log("Removing ", found)
 | |
|             return undefined
 | |
|         })
 | |
|         const lastChar = rawContents.endsWith("\n") ? "\n" : ""
 | |
|         fs.writeFileSync(file, JSON.stringify(json, null, "    ") + lastChar)
 | |
|     }
 | |
|     if (removedLanguages.length === 0) {
 | |
|         console.warn("No items removed. Doublecheck the paths")
 | |
|     } else {
 | |
|         console.log("Removed items in " + removedLanguages.join(", "))
 | |
|     }
 | |
| }
 | |
| 
 | |
| const args = [...process.argv]
 | |
| args.splice(0, 2)
 | |
| main(args).then((_) => {
 | |
|     console.log("All done!")
 | |
| })
 |