var os = require('os')
  , fs = require('fs')
  , path = require('path')
  , spawn = require('child_process').spawn

var mkdirp = require('mkdirp')
  , phantomPath = require('phantomjs').path

var phantomscript = path.join(__dirname, 'phantomscript.js')

module.exports = { process: processMermaid }

function processMermaid(files, _options, _next) {
  var options = _options || {}
    , outputDir = options.outputDir || process.cwd()
    , next = _next || function() {}
    , phantomArgs = [
          phantomscript
        , outputDir
        , options.png
        , options.svg
        , options.verbose
      ]

  files.forEach(function(file) {
    phantomArgs.push(file)
  })

  mkdirp(outputDir, function(err) {
    if (err) {
      throw err
      return
    }
    phantom = spawn(phantomPath, phantomArgs)

    phantom.on('exit', next)

    phantom.stderr.pipe(process.stderr)
    phantom.stdout.pipe(process.stdout)
  })
}
