Class: Bundler::CLI
Defined Under Namespace
Modules: Common
Classes: Binstubs, Cache, Check, Clean, Config, Console, Exec, Gem, Init, Inject, Install, Lock, Open, Outdated, Package, Platform, Show, Update, Viz
Constant Summary
collapse
- AUTO_INSTALL_CMDS =
%w(show binstubs outdated exec open console licenses clean).freeze
Constants inherited
from Thor
Thor::AmbiguousTaskError, Thor::DynamicTask, Thor::HELP_MAPPINGS, Thor::HiddenTask, Thor::TEMPLATE_EXTNAME, Thor::THOR_RESERVED_WORDS, Thor::Task, Thor::UndefinedTaskError, Thor::VERSION
Instance Attribute Summary
#behavior
Attributes included from Thor::Base
#args, #options, #parent_options
Class Method Summary
collapse
Instance Method Summary
collapse
#action, #append_to_file, #apply, #chmod, #comment_lines, #copy_file, #create_file, #create_link, #destination_root, #destination_root=, #directory, #empty_directory, #find_in_source_paths, #get, #gsub_file, #in_root, included, #inject_into_class, #insert_into_file, #inside, #link_file, #prepend_to_file, #relative_to_original_destination_root, #remove_file, #run, #run_ruby_script, #source_paths, #template, #thor, #uncomment_lines
Methods inherited from Thor
check_unknown_options!, check_unknown_options?, command_help, default_command, desc, help, long_desc, map, method_option, method_options, package_name, printable_commands, register, stop_on_unknown_option!, stop_on_unknown_option?, subcommand, subcommand_classes, subcommands
Methods included from Thor::Base
included, register_klass_file, subclass_files, subclasses
Constructor Details
#initialize(*args) ⇒ CLI
Returns a new instance of CLI.
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
# File 'lib/bundler/cli.rb', line 17
def initialize(*args)
super
custom_gemfile = options[:gemfile] || Bundler.settings[:gemfile]
ENV["BUNDLE_GEMFILE"] = File.expand_path(custom_gemfile) if custom_gemfile && !custom_gemfile.empty?
Bundler.settings[:retry] = options[:retry] if options[:retry]
current_cmd = args.last[:current_command].name
auto_install if AUTO_INSTALL_CMDS.include?(current_cmd)
rescue UnknownArgumentError => e
raise InvalidOption, e.message
ensure
self.options ||= {}
Bundler.ui = UI::Shell.new(options)
Bundler.ui.level = "debug" if options["verbose"]
if ENV["RUBYGEMS_GEMDEPS"] && !ENV["RUBYGEMS_GEMDEPS"].empty?
Bundler.ui.warn(
"The RUBYGEMS_GEMDEPS environment variable is set. This enables RubyGems' " \
"experimental Gemfile mode, which may conflict with Bundler and cause unexpected errors. " \
"To remove this warning, unset RUBYGEMS_GEMDEPS.", :wrap => true)
end
end
|
Class Method Details
.handle_no_command_error(command, has_namespace = $thor_runner) ⇒ Object
84
85
86
87
88
|
# File 'lib/bundler/cli.rb', line 84
def self.handle_no_command_error(command, has_namespace = $thor_runner)
return super unless command_path = Bundler.which("bundler-#{command}")
Kernel.exec(command_path, *ARGV[1..-1])
end
|
Reformat the arguments passed to bundle that include a –help flag into the corresponding ‘bundle help #command` call
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
|
# File 'lib/bundler/cli.rb', line 438
def self.reformatted_help_args(args)
bundler_commands = all_commands.keys
help_flags = %w(--help -h)
exec_commands = %w(exec e)
help_used = args.select {|a| help_flags.include? a }
exec_used = args.select {|a| exec_commands.include? a }
command = args.select {|a| bundler_commands.include? a }
if exec_used.any? && help_used.any?
regex = /
( # Matches `exec --help` or `exec --help foo`
(#{exec_commands.join("|")})
\s
(#{help_flags.join("|")})
(.+)*
)|
( # Matches `--help exec` or `--help exec foo`
(#{help_flags.join("|")})
\s
(#{exec_commands.join("|")})
(.+)*
)
/x
arg_str = args.join(" ")
if arg_str =~ regex
%w(help exec)
else
args
end
elsif command.empty?
abort("Could not find command \"#{args.join(" ")}\".")
else
["help", command.first]
end
end
|
.source_root ⇒ Object
387
388
389
|
# File 'lib/bundler/cli.rb', line 387
def self.source_root
File.expand_path(File.join(File.dirname(__FILE__), "templates"))
end
|
.start ⇒ Object
10
11
12
13
14
15
|
# File 'lib/bundler/cli.rb', line 10
def self.start(*)
super
rescue Exception => e
Bundler.ui = UI::Shell.new
raise e
end
|
Instance Method Details
#binstubs(*gems) ⇒ Object
232
233
234
235
|
# File 'lib/bundler/cli.rb', line 232
def binstubs(*gems)
require "bundler/cli/binstubs"
Binstubs.new(options, gems).run
end
|
#cache ⇒ Object
264
265
266
267
|
# File 'lib/bundler/cli.rb', line 264
def cache
require "bundler/cli/cache"
Cache.new(options).run
end
|
#check ⇒ Object
115
116
117
118
|
# File 'lib/bundler/cli.rb', line 115
def check
require "bundler/cli/check"
Check.new(options).run
end
|
#clean ⇒ Object
396
397
398
399
|
# File 'lib/bundler/cli.rb', line 396
def clean
require "bundler/cli/clean"
Clean.new(options.dup).run
end
|
#config(*args) ⇒ Object
319
320
321
322
|
# File 'lib/bundler/cli.rb', line 319
def config(*args)
require "bundler/cli/config"
Config.new(options, args, self).run
end
|
#console(group = nil) ⇒ Object
331
332
333
334
|
# File 'lib/bundler/cli.rb', line 331
def console(group = nil)
require "bundler/cli/console"
Console.new(options, group).run
end
|
#env ⇒ Object
432
433
434
|
# File 'lib/bundler/cli.rb', line 432
def env
Env.new.write($stdout)
end
|
#exec(*args) ⇒ Object
302
303
304
305
|
# File 'lib/bundler/cli.rb', line 302
def exec(*args)
require "bundler/cli/exec"
Exec.new(options, args).run
end
|
#gem(name) ⇒ Object
382
383
384
385
|
# File 'lib/bundler/cli.rb', line 382
def gem(name)
require "bundler/cli/gem"
Gem.new(options, name, self).run
end
|
#help(cli = nil) ⇒ Object
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
# File 'lib/bundler/cli.rb', line 51
def help(cli = nil)
case cli
when "gemfile" then command = "gemfile.5"
when nil then command = "bundle"
else command = "bundle-#{cli}"
end
manpages = %w(
bundle
bundle-config
bundle-exec
bundle-gem
bundle-install
bundle-package
bundle-update
bundle-platform
gemfile.5)
if manpages.include?(command)
root = File.expand_path("../man", __FILE__)
if Bundler.which("man") && root !~ %r{^file:/.+!/META-INF/jruby.home/.+}
Kernel.exec "man #{root}/#{command}"
else
puts File.read("#{root}/#{command}.txt")
end
elsif command_path = Bundler.which("bundler-#{cli}")
Kernel.exec(command_path, "--help")
else
super
end
end
|
#init ⇒ Object
97
98
99
100
|
# File 'lib/bundler/cli.rb', line 97
def init
require "bundler/cli/init"
Init.new(options.dup).run
end
|
#inject(name, version, *gems) ⇒ Object
410
411
412
413
|
# File 'lib/bundler/cli.rb', line 410
def inject(name, version, *gems)
require "bundler/cli/inject"
Inject.new(options, name, version, gems).run
end
|
#install ⇒ Object
171
172
173
174
175
176
177
178
|
# File 'lib/bundler/cli.rb', line 171
def install
require "bundler/cli/install"
no_install = Bundler.settings[:no_install]
Bundler.settings[:no_install] = false if no_install == true
Install.new(options.dup).run
ensure
Bundler.settings[:no_install] = no_install unless no_install.nil?
end
|
#licenses ⇒ Object
343
344
345
346
347
348
349
350
351
352
353
354
|
# File 'lib/bundler/cli.rb', line 343
def licenses
Bundler.load.specs.sort_by {|s| s.license.to_s }.reverse_each do |s|
gem_name = s.name
license = s.license || s.licenses
if license.empty?
Bundler.ui.warn "#{gem_name}: Unknown"
else
Bundler.ui.info "#{gem_name}: #{license}"
end
end
end
|
#lock ⇒ Object
426
427
428
429
|
# File 'lib/bundler/cli.rb', line 426
def lock
require "bundler/cli/lock"
Lock.new(options).run
end
|
#open(name) ⇒ Object
325
326
327
328
|
# File 'lib/bundler/cli.rb', line 325
def open(name)
require "bundler/cli/open"
Open.new(options, name).run
end
|
#outdated(*gems) ⇒ Object
255
256
257
258
|
# File 'lib/bundler/cli.rb', line 255
def outdated(*gems)
require "bundler/cli/outdated"
Outdated.new(options, gems).run
end
|
#package ⇒ Object
288
289
290
291
|
# File 'lib/bundler/cli.rb', line 288
def package
require "bundler/cli/package"
Package.new(options).run
end
|
404
405
406
407
|
# File 'lib/bundler/cli.rb', line 404
def platform
require "bundler/cli/platform"
Platform.new(options).run
end
|
#show(gem_name = nil) ⇒ Object
216
217
218
219
|
# File 'lib/bundler/cli.rb', line 216
def show(gem_name = nil)
require "bundler/cli/show"
Show.new(options, gem_name).run
end
|
#update(*gems) ⇒ Object
202
203
204
205
|
# File 'lib/bundler/cli.rb', line 202
def update(*gems)
require "bundler/cli/update"
Update.new(options, gems).run
end
|
#version ⇒ Object
337
338
339
|
# File 'lib/bundler/cli.rb', line 337
def version
Bundler.ui.info "Bundler version #{Bundler::VERSION}"
end
|
#viz ⇒ Object
367
368
369
370
|
# File 'lib/bundler/cli.rb', line 367
def viz
require "bundler/cli/viz"
Viz.new(options).run
end
|