
###
Sedder
###

Q  = require('q')
fs = require('fs')

module.exports = (sed, callback) ->

  (file) ->
    deferred = Q.defer()

    fs.readFile file, 'utf8', (err, data) ->
      deferred.reject(new Error(err)) if err

      for searcher, replacement of sed
        regex = new RegExp("{{\\s*#{searcher}\\s*}}", 'gm')
        data = data.replace(regex, replacement)

      fs.writeFile file, data, 'utf8', (err) ->
        deferred.reject(new Error(err)) if err
        deferred.resolve(sedder: true)
        do callback if callback

    deferred.promise

