summaryrefslogtreecommitdiff
path: root/lib/bundler/cli/clean.rb
blob: d70a5b9b89099e2fa6e579a6e75e5220a6374a48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
module Bundler
  class CLI::Clean
    attr_reader :options

    def initialize(options)
      @options = options
    end

    def run
      require_path_or_force
      Bundler.load.clean(options[:"dry-run"])
    end

  protected

    def require_path_or_force
      if !Bundler.settings[:path] && !options[:force]
        Bundler.ui.error "Cleaning all the gems on your system is dangerous! " \
          "If you're sure you want to remove every system gem not in this " \
          "bundle, run `bundle clean --force`."
        exit 1
      end
    end
  end
end