Files
data/scripts/compile-json-modpack-archive

49 lines
1.8 KiB
CoffeeScript
Executable File

#!/usr/bin/env coffee
{Converter} = require("crafting-guide-common").deprecated
fs = require "fs"
{Logger} = require("crafting-guide-common").util
{Mod} = require("crafting-guide-common").deprecated.game
{ModPack} = require("crafting-guide-common").deprecated.game
{ModPackJsonFormatter} = require("crafting-guide-common").parsing
{ModVersion} = require("crafting-guide-common").deprecated.game
{ModVersionParser} = require("crafting-guide-common").deprecated.parsing
path = require "path"
########################################################################################################################
global.logger = new Logger level:Logger.INFO
try
modPack = new ModPack
modSlugs = fs.readdirSync "data"
for modSlug in modSlugs
try
modVersions = fs.readdirSync path.join "data", modSlug, "versions"
catch e
continue # skip this mod, it has no mod version data
lastVersion = modVersions.pop()
text = fs.readFileSync path.join("data", modSlug, "versions", lastVersion, "mod-version.cg"), "UTF-8"
modVersion = new ModVersion modSlug:modSlug, version:lastVersion
parser = new ModVersionParser model:modVersion
parser.parse text
mod = new Mod slug:modSlug
text = fs.readFileSync path.join("data", modSlug, "mod.cg"), "UTF-8"
mod.parse text
mod.addModVersion modVersion
modPack.addMod mod
converter = new Converter
newModPack = converter.convert "crafting-guide", "Crafting Guide", modPack
formatter = new ModPackJsonFormatter
json = formatter.format newModPack
fs.writeFileSync path.join("data", "modpacks", "#{newModPack.id}.json"), json, encoding:"UTF-8"
catch e
console.error e.stack