 
   switch action
     when 'list'
-      if argv.update
-        cmd = [ensureCacheDir, fetchListing, displayListing, writeListing]
-      else
-        cmd = [ensureCacheDir, loadListing, displayListing, updateIfNeeded]
+      cmd = [fetchListing, displayListing]
     when 'install'
-      cmd = [[loadCurrentEnv, loadListing], installPlugin]
+      cmd = [[loadCurrentEnv, fetchListing], installPlugin]
 
     else
       cmd = [(callback) -> callback new Error "Unknown plugin action: #{ action }"]

    if left > plugin.maintainers.length
      line += chalk.grey lpad(plugin.maintainers, left)
    logger.info line.replace /^\s*(\S+)  /, (m) -> chalk.bold m

  callback null, list

updateIfNeeded = (list, callback) ->
  if list._needsSave
    delete list._needsSave
    writeListing list, callback
  else
    delta = Date.now() - list.updated
    if delta > maxListAge
      logger.verbose 'plugin listing stale, updating'
      childProcess.fork module.id, [logger.transports.cli.level]
    callback()

waterfall = (flow, callback) ->
  ### async.waterfall that allows for parallel tasks ###

path = require 'path'
npm = require 'npm'
mkdirp = require 'mkdirp'
https = require 'https'

{NpmAdapter, loadEnv, commonOptions, extendOptions} = require './common'
{fileExists, readJSON} = require './../core/utils'
{logger} = require './../core/logger'

usage = """

