   browserRootModule: null
   copyrightFrom: (new Date).getFullYear()
   license: ''
+  onCompile: null
   sourcePath: 'src'
+  targetPath: 'lib'
 
 # Load package information from multiple sources.
 loadInfo = ->

    fn?()

# Safely make a directory with default permissions.
makeDir = (dir) ->
  fs.mkdirSync dir, 0755 unless path.existsSync dir

# Find files based on a global pattern.
# Call the provided function with the result, if any files are found.

  for key of defaults
    info[key] = defaults[key] unless info[key]?

  # Load compilation event handler, if any.
  if info.onCompile?
    info.onCompile = require info.onCompile

  # Expands source and target paths.
  info.sourcePath = path.resolve info.sourcePath
  info.targetPath = path.resolve info.targetPath

  # Load package.json and override existing significant values.
  package = JSON.parse(fs.readFileSync 'package.json')
  for key in ['author', 'name', 'description', 'version']
