49 lines
1.8 KiB
CoffeeScript
Executable File
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
|