mirror of
https://github.com/freeCodeCamp/freeCodeCamp.git
synced 2026-03-24 11:03:17 -04:00
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:
36
tools/scripts/redirect-gen.ts
Normal file
36
tools/scripts/redirect-gen.ts
Normal 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();
|
||||
Reference in New Issue
Block a user