@taistudio/animeback-submit
Version:
submission system for animeback extensions
69 lines (63 loc) • 2.79 kB
JavaScript
/*-----------------------------------------------------------------------------------------------------------\
| _____ _ _____ _ _ _ _____ _____ _____ __ _______ _____ _____ _____ |
| |_ _| (_) / ___| | | (_) / __ \| _ |/ __ \/ | / / __ \| _ |/ __ \|____ | |
| | | __ _ _ \ `--.| |_ _ _ __| |_ ___ `' / /'| |/' |`' / /'`| | / /`' / /'| |/' |`' / /' / / |
| | |/ _` | | `--. \ __| | | |/ _` | |/ _ \ / / | /| | / / | | / / / / | /| | / / \ \ |
| | | (_| | | /\__/ / |_| |_| | (_| | | (_) | ./ /___\ |_/ /./ /____| |_/ / ./ /___\ |_/ /./ /___.___/ / |
| \_/\__,_|_| \____/ \__|\__,_|\__,_|_|\___/ \_____/ \___/ \_____/\___/_/ \_____/ \___/ \_____/\____/ |
\-----------------------------------------------------------------------------------------------------------*/
const fs = require("fs");
const path = require("path");
const dates = require("../meta/dates.json");
const colors = require("../meta/colors.json");
const releases = require("../meta/releases.json");
const readmes = require("../meta/readmes.json");
const parseGitHubUrl = require("github-url-to-object");
const extensions = [];
fs.readdirSync(path.join(__dirname, "../extensions"))
.filter((filename) => {
return fs
.statSync(path.join(__dirname, `../extensions/${filename}`))
.isDirectory();
})
.forEach((slug) => {
const jsonFile = path.join(__dirname, `../extensions/${slug}/${slug}.json`);
var content = fs.readFileSync(jsonFile);
const extension = Object.assign(
{ slug: slug },
JSON.parse(content.toString()),
{
icon: `${slug}-icon.png`,
icon32: `${slug}-icon-32.png`,
icon64: `${slug}-icon-64.png`,
icon128: `${slug}-icon-128.png`,
icon256: `${slug}-icon-256.png`,
date: dates[slug],
iconColors: colors[slug].palette,
filename: `${slug}.asar`,
},
releases[slug],
readmes[slug],
);
extension.goodColorOnWhite =
extension.goodColorOnWhite || colors[slug].goodColorOnWhite;
extension.goodColorOnBlack =
extension.goodColorOnBlack || colors[slug].goodColorOnBlack;
extension.faintColorOnWhite =
extension.faintColorOnWhite || colors[slug].faintColorOnWhite;
// Delete website if it's the same URL as repository
const parsedWebsite = parseGitHubUrl(extension.website);
const parsedRepo = parseGitHubUrl(extension.repository);
if (
parsedWebsite &&
parsedRepo &&
parsedWebsite.https_url === parsedRepo.https_url
) {
delete extension.website;
}
extensions.push(extension);
});
fs.writeFileSync(
path.join(__dirname, "../index.json"),
JSON.stringify(extensions, null, 2),
);