apple2js/bin/index

61 lines
1.3 KiB
JavaScript
Executable File

#!/usr/bin/env node
const fs = require('fs');
const path = require('path');
const diskPath = path.resolve('json/disks');
const dir = fs.readdirSync(diskPath);
const index = [];
for (const fileName of dir.sort()) {
if (/\.json$/.test(fileName)) {
const json = fs.readFileSync(path.resolve(diskPath, fileName));
const data = JSON.parse(json);
if (data.private) {
continue;
}
if (!data.name || !data.category) {
continue;
}
const entry = {
filename: `json/disks/${fileName}`,
e: data['2e'],
name: data.name,
disk: data.disk,
category: data.category,
};
index.push(entry);
}
}
index.sort((x, y) => {
const xc = x.category.toLowerCase();
const yc = y.category.toLowerCase();
const xn = x.name.toLowerCase();
const yn = y.name.toLowerCase();
if (xc < yc) {
return -1;
} else if (xc > yc) {
return 1;
} else if (xn < yn) {
return -1;
} else if (xn > yn) {
return 1;
} else {
return 0;
}
});
fs.writeFileSync(
path.resolve(diskPath, 'index.js'),
`disk_index = ${JSON.stringify(index, null, 2)};`
);
fs.writeFileSync(
path.resolve(diskPath, 'index.json'),
JSON.stringify(index, null, 2)
);