UNPKG

@taistudio/animeback-submit

Version:

submission system for animeback extensions

69 lines (63 loc) 2.79 kB
/*-----------------------------------------------------------------------------------------------------------\ | _____ _ _____ _ _ _ _____ _____ _____ __ _______ _____ _____ _____ | | |_ _| (_) / ___| | | (_) / __ \| _ |/ __ \/ | / / __ \| _ |/ __ \|____ | | | | | __ _ _ \ `--.| |_ _ _ __| |_ ___ `' / /'| |/' |`' / /'`| | / /`' / /'| |/' |`' / /' / / | | | |/ _` | | `--. \ __| | | |/ _` | |/ _ \ / / | /| | / / | | / / / / | /| | / / \ \ | | | | (_| | | /\__/ / |_| |_| | (_| | | (_) | ./ /___\ |_/ /./ /____| |_/ / ./ /___\ |_/ /./ /___.___/ / | | \_/\__,_|_| \____/ \__|\__,_|\__,_|_|\___/ \_____/ \___/ \_____/\___/_/ \_____/ \___/ \_____/\____/ | \-----------------------------------------------------------------------------------------------------------*/ 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), );