             source = path.join(nodeModulesDirectory, child)
             destination = path.join(@atomPackagesDirectory, child)
             fs.cp(source, destination, forceDelete: true)
-          process.stdout.write '\u2713\n'.green
+          @logSuccess()
 
         callback()
       else
         if installGlobally
           fs.removeSync(installDirectory)
-          process.stdout.write '\u2717\n'.red
+          @logFailure()
 
         callback("#{stdout}\n#{stderr}")
 

  installModules: (options, callback) =>
    process.stdout.write 'Installing modules '

    @forkInstallCommand options, (code, stderr='', stdout='') =>
      if code is 0
        process.stdout.write '\u2713\n'.green
        callback()
      else
        process.stdout.write '\u2717\n'.red
        callback("#{stdout}\n#{stderr}")

  forkInstallCommand: (options, callback) ->
    installArgs = ['--globalconfig', config.getGlobalConfigPath(), '--userconfig', config.getUserConfigPath(), 'install']

        else
          chunks = []
          response.on 'data', (chunk) -> chunks.push(chunk)
          response.on 'end', =>
            try
              error = JSON.parse(Buffer.concat(chunks))
              message = error.message ? error.error ? error
              @logFailure() if installGlobally
              callback("Unable to download #{packageUrl}: #{response.headers.status ? response.statusCode} #{message}")
            catch parseError
              @logFailure() if installGlobally
              callback("Unable to download #{packageUrl}: #{response.headers.status ? response.statusCode}")

  # Get the path to the package from the local cache.
