diff --git a/tools/scripts/redirect-gen.ts b/tools/scripts/redirect-gen.ts new file mode 100644 index 00000000000..cb0d45684be --- /dev/null +++ b/tools/scripts/redirect-gen.ts @@ -0,0 +1,36 @@ +import fs from 'fs'; +import path from 'path'; + +/* This can be used to create NGINX maps for redirects. After running this + script with `npx ts-node redirect-gen`, the map should appear in the current + directory. +*/ + +function createRedirectMap(): void { + const basePath = '../../../curriculum/challenges/english/18-project-euler'; + const directories = fs.readdirSync(path.resolve(__dirname, basePath)); + + let mapObject = ''; + + for (let i = 0; i < directories.length; i++) { + const files = fs.readdirSync( + path.resolve(__dirname, `${basePath}/${directories[i]}`) + ); + + for (let j = 0; j < files.length; j++) { + const fileName = path.parse(files[j]).name; + mapObject += `~^/learn/coding-interview-prep/project-euler/${fileName}/?$ /learn/project-euler/${directories[i]}/${fileName}; \n`; + } + } + + fs.writeFile('redirectMap.map', mapObject, 'utf8', function (err) { + if (err) { + console.log('An error occurred while writing MAP redirect file', err); + return console.log(err); + } + + console.log('Map file has been saved.'); + }); +} + +createRedirectMap();