37 lines
1.1 KiB
TypeScript
37 lines
1.1 KiB
TypeScript
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();
|