_ = require "underscore"
async = require "async"
path = require "path"
fs = require "fs.extra"
formats = require "./formats"
[inFmt, outFmt, outExt, files...] = argv = process.argv.slice(2)
console.log files
process.exit(1) if _.has formats, inFmt and _.has formats, outFmt
async.each files, (f, done) ->
  inExt = path.extname(f)
  d = path.basename(f, inExt)
  g = d + outExt
  fs.mkdir d, () ->
    formats[inFmt].extract d, f, () ->
      formats[outFmt].archive d, g, () ->
        fs.rmrf d, () ->
          done()
