const fs = require('fs');
const PROBLEMS_SITE_DATA = JSON.parse(
fs.readFileSync('./.problemSiteData.json', 'utf8'),
);
const languages = [
{
name: 'C',
directory: 'c',
extension: 'c',
},
{
name: 'C++',
directory: 'cpp',
extension: 'cpp',
},
{
name: 'C#',
directory: 'csharp',
extension: 'cs',
},
{
name: 'Java',
directory: 'java',
extension: 'java',
},
{
name: 'Python',
directory: 'python',
extension: 'py',
},
{
name: 'JavaScript',
directory: 'javascript',
extension: 'js',
},
{
name: 'TypeScript',
directory: 'typescript',
extension: 'ts',
},
{
name: 'Go',
directory: 'go',
extension: 'go',
},
{
name: 'Ruby',
directory: 'ruby',
extension: 'rb',
},
{
name: 'Swift',
directory: 'swift',
extension: 'swift',
},
{
name: 'Kotlin',
directory: 'kotlin',
extension: 'kt',
},
{
name: 'Rust',
directory: 'rust',
extension: 'rs',
},
{
name: 'Scala',
directory: 'scala',
extension: 'scala',
},
{
name: 'Dart',
directory: 'dart',
extension: 'dart',
},
];
for (const lang of languages) {
const langDir = lang.directory;
const langExt = lang.extension;
const files = fs.readdirSync(langDir, { withFileTypes: true });
console.log(`This many files in ${langDir}: ${files.length}`);
let counter = 0;
for (const problem of PROBLEMS_SITE_DATA) {
let problemName = problem['link'].replace('/', '').toLowerCase();
const problemNumber = problem['code'].split('-')[0];
const foundFile = files.find((file) =>
file.name.startsWith(`${problemNumber.toString()}-`),
);
if (foundFile && foundFile.isFile()) {
const oldFile = `${langDir}/${foundFile.name}`;
const newFile = `${langDir}/${problemNumber}-${problemName}.${langExt}`;
if (oldFile !== newFile) {
fs.renameSync(oldFile, newFile);
counter++;
}
problem[langDir] = true;
}
}
console.log(
`Renamed ${counter} files in ${langDir}, which had ${files.length} total files.`,
);
}
fs.writeFile(
'./.problemSiteData.json',
JSON.stringify(PROBLEMS_SITE_DATA),
function (err) {
if (err) throw err;
console.log('Saved!');
},
);