diff --git a/lib/rake/application.rb b/lib/rake/application.rb index 87ae47b32..b784cdef6 100644 --- a/lib/rake/application.rb +++ b/lib/rake/application.rb @@ -7,6 +7,7 @@ require_relative "thread_history_display" require_relative "trace_output" require_relative "win32" +require_relative "console" module Rake @@ -644,6 +645,9 @@ def standard_rake_options # :nodoc: options.ignore_deprecate = true } ], + ["--console", "-c", "Start an interactive Rake console (IRB)", lambda { |value| + Console.start + }], ]) end diff --git a/lib/rake/console.rb b/lib/rake/console.rb new file mode 100644 index 000000000..3c4f2ace4 --- /dev/null +++ b/lib/rake/console.rb @@ -0,0 +1,14 @@ +# frozen_string_literal: true +module Rake + module Console + def self.start + require "irb" + + puts "Rake console, version #{Rake::VERSION}" + Rake.application.load_rakefile + ARGV.clear + IRB.start + exit + end + end +end