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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 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 83 84 85 86 87 88 89 90 91 92 93 94 95
|
# frozen_string_literal: true
module Byebug
#
# Handles byebug's command line options
#
class OptionSetter
def initialize(runner, opts)
@runner = runner
@opts = opts
end
def setup
debug
include_flag
post_mortem
quit
rc
stop
require_flag
remote
trace
version
help
end
private
def debug
@opts.on "-d", "--debug", "Set $DEBUG=true" do
$DEBUG = true
end
end
def include_flag
@opts.on "-I", "--include list", "Add to paths to $LOAD_PATH" do |list|
$LOAD_PATH.push(list.split(":")).flatten!
end
end
def post_mortem
@opts.on "-m", "--[no-]post-mortem", "Use post-mortem mode" do |v|
Setting[:post_mortem] = v
end
end
def quit
@opts.on "-q", "--[no-]quit", "Quit when script finishes" do |v|
@runner.quit = v
end
end
def rc
@opts.on "-x", "--[no-]rc", "Run byebug initialization file" do |v|
@runner.init_script = v
end
end
def stop
@opts.on "-s", "--[no-]stop", "Stop when script is loaded" do |v|
@runner.stop = v
end
end
def require_flag
@opts.on "-r", "--require file", "Require library before script" do |lib|
require lib
end
end
def remote
@opts.on "-R", "--remote [host:]port", "Remote debug [host:]port" do |p|
@runner.remote = p
end
end
def trace
@opts.on "-t", "--[no-]trace", "Turn on line tracing" do |v|
Setting[:linetrace] = v
end
end
def version
@opts.on "-v", "--version", "Print program version" do
@runner.version = Byebug::VERSION
end
end
def help
@opts.on "-h", "--help", "Display this message" do
@runner.help = @opts.help
end
end
end
end
|