#!/usr/bin/env coffee global._ = require 'underscore' global.Backbone = require 'backbone' fs = require 'fs' Logger = require '../src/scripts/logger' ModVersion = require '../src/scripts/models/mod_version' ModVersionParser = require '../src/scripts/models/mod_version_parser' require '../src/scripts/underscore_mixins' ######################################################################################################################## if process.argv.length is 3 sourceFileName = process.argv[2] targetFileName = process.argv[2] else if process.argv.length is 4 sourceFileName = process.argv[2] targetFileName = process.argv[3] else console.error """ USAGE: reformat () Reformats a given recipe book into the latest version of the recipe book format. This includes alphabetizing entries, simplifying item lists, and upgrading to the latest version. If given a single argument, the named file will be replaced with the reformatted version. If two arguments are given, then the output will be written to the second file. If a "-" is given as the second file, the output will be written to stdout. """ process.exit -1 global.logger = new Logger level:Logger.WARNING try text = fs.readFileSync sourceFileName, 'UTF-8' parser = new ModVersionParser model:new ModVersion modSlug:'', version:'' modVersion = parser.parse text text = parser.unparse modVersion if targetFileName is '-' console.log text else fs.writeFileSync targetFileName, text, encoding:'UTF-8' catch e console.error e.stack