         commands.push (packagePath, callback) =>
           @installModule(options, pack, packagePath, callback)
 
-        async.waterfall commands, (error) ->
+        async.waterfall commands, (error) =>
           unless installGlobally
             if error?
-              process.stdout.write '\u2717\n'.red
+              @logSuccess()
             else
-              process.stdout.write '\u2713\n'.green
+              @logFailure()
           callback(error)
 
   # Install all the package dependencies found in the package.json file.

        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
              process.stdout.write('\u2717\n'.red) if installGlobally
              callback("Unable to download #{packageUrl}: #{response.headers.status ? response.statusCode} #{message}")
            catch parseError
              process.stdout.write('\u2717\n'.red) if installGlobally
              callback("Unable to download #{packageUrl}: #{response.headers.status ? response.statusCode}")

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


    @requestPackage packageName, (error, pack) =>
      if error?
        @logFailure()
        callback(error)
      else
        commands = []
        packageVersion ?= pack.releases.latest
        {tarball} = pack.versions[packageVersion]?.dist ? {}
        unless tarball
          @logFailure()
          callback("Package version: #{packageVersion} not found")
          return

