class Bundler::CLI

def self.run(command, options = {})

def self.run(command, options = {})
  new(options).run(command)
rescue DefaultManifestNotFound => e
  Bundler.logger.error "Could not find a Gemfile to use"
  exit 3
rescue InvalidEnvironmentName => e
  Bundler.logger.error "Gemfile error: #{e.message}"
  exit 4
rescue InvalidRepository => e
  Bundler.logger.error e.message
  exit 5
rescue VersionConflict => e
  Bundler.logger.error e.message
  exit 6
rescue GemNotFound => e
  Bundler.logger.error e.message
  exit 7
rescue InvalidCacheArgument => e
  Bundler.logger.error e.message
  exit 8
rescue SourceNotCached => e
  Bundler.logger.error e.message
  exit 9
rescue ManifestFileNotFound => e
  Bundler.logger.error e.message
  exit 10
end

def bundle

def bundle
  @environment.install(@options)
end

def cache

def cache
  @environment.cache(@options)
end

def exec

def exec
  @environment.setup_environment
  # w0t?
  super(*$command)
end

def initialize(options)

def initialize(options)
  @options = options
  @environment = Bundler::Environment.load(@options[:manifest])
end

def list

def list
  @environment.list(@options)
end

def list_outdated

def list_outdated
  @environment.list_outdated(@options)
end

def prune

def prune
  @environment.prune(@options)
end

def run(command)

def run(command)
  send(command)
end