module.exports = async () => { const spinner = ora("Fetching package lists...").start(); let list = (await axios.get("https://twipkg.cdn.minteck.org/packages.json")).data; if (fs.existsSync(home + "/repository")) { fs.rmSync(home + "/repository", { recursive: true }); } fs.mkdirSync(home + "/repository"); fs.writeFileSync(home + "/repository/list.json", JSON.stringify(list)); let index = 0; for (let pkg of list) { spinner.text = "Fetching package lists... " + Math.round((index / list.length) * 100) + "%"; let dir = pkg.substring(0, 1).replace(/[^a-zA-Z0-9]/gm, "#"); let pack = (await axios.get("https://twipkg.cdn.minteck.org/" + dir + "/" + pkg + ".json")).data; let verdata = (await axios.get(pack.version)).data; pack.verdata = { latest: verdata.commit.short_id, publisher: { name: verdata.commit.author_name, email: verdata.commit.author_email }, date: verdata.commit.created_at } let signRaw = { error: "404 Not Found" }; try { signRaw = (await axios.get(pack.signature.replace("{version}", verdata.commit.id))).data; } catch (e) {} pack.sign = { signed: false, verified: false, key: null, signer: { name: null, email: null } } if (signRaw.error !== "404 Not Found") { pack.sign.signed = true; if (signRaw.verification_status === "verified") { pack.sign.verified = true; } else { pack.sign.verified = false; } if (signRaw.gpg_key_user_name) { pack.sign.signer.name = signRaw.gpg_key_user_name; } if (signRaw.gpg_key_user_email) { pack.sign.signer.email = signRaw.gpg_key_user_email; } if (signRaw.gpg_key_primary_keyid) { pack.sign.key = signRaw.gpg_key_primary_keyid; } } if (!fs.existsSync(home + "/repository/" + dir)) { fs.mkdirSync(home + "/repository/" + dir); } fs.writeFileSync(home + "/repository/" + dir + "/" + pkg + ".json", JSON.stringify(pack)); index++; } spinner.succeed("Fetching package lists... done"); //process.exit(); }