feat(tools): redirect generation script (#49798)

* feat: redirect generation script

* feat: add comment

* Apply suggestions from code review

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>

---------

Co-authored-by: Oliver Eyton-Williams <ojeytonwilliams@gmail.com>
This commit is contained in:
Sem Bauke
2023-03-23 16:19:21 +01:00
committed by GitHub
parent 4b8846c934
commit 864df54011

View File

@@ -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();