     throw err if err?
 
     # if it's a file, transform the file
-    if stats.isFile()
-      transform_file src_path, project, target_path
-    else if stats.isDirectory()
-      transform_dir src_path, project, target_path
+    await
+      if stats.isFile()
+        transform_file src_path, project, target_path, defer()
+      else if stats.isDirectory()
+        transform_dir src_path, project, target_path, defer()
+
+  next()
 
 module.exports = (json_file) ->
 

  'width' : 'the height of the user interface'
  'height' : 'the width of the user interface'
  
transform_file = (src, project, target) ->

  # copy the file.
  proc = child_process.spawn 'cp', [src, target], {'stdio' : 'ignore'}
  await proc.on 'exit', defer code

  # replace each key with each replacement using sed
  args = ['-i', '']

  throw err if err?
  target = (path.join process.cwd(), project.project)

  await transform_dir fullpath, project, target, defer()