Land #6752, compact table for advanced options
commit
feb1394630
|
@ -400,8 +400,7 @@ class ReadableText
|
|||
'Description'
|
||||
])
|
||||
|
||||
mod.options.sorted.each { |entry|
|
||||
name, opt = entry
|
||||
mod.options.sorted.each do |name, opt|
|
||||
val = mod.datastore[name] || opt.default
|
||||
|
||||
next if (opt.advanced?)
|
||||
|
@ -409,7 +408,7 @@ class ReadableText
|
|||
next if (missing && opt.valid?(val))
|
||||
|
||||
tbl << [ name, opt.display_value(val), opt.required? ? "yes" : "no", opt.desc ]
|
||||
}
|
||||
end
|
||||
|
||||
return tbl.to_s
|
||||
end
|
||||
|
@ -420,24 +419,23 @@ class ReadableText
|
|||
# @param indent [String] the indentation to use.
|
||||
# @return [String] the string form of the information.
|
||||
def self.dump_advanced_options(mod, indent = '')
|
||||
output = ''
|
||||
pad = indent
|
||||
tbl = Rex::Ui::Text::Table.new(
|
||||
'Indent' => indent.length,
|
||||
'Columns' =>
|
||||
[
|
||||
'Name',
|
||||
'Current Setting',
|
||||
'Required',
|
||||
'Description'
|
||||
])
|
||||
|
||||
mod.options.sorted.each { |entry|
|
||||
name, opt = entry
|
||||
mod.options.sorted.each do |name, opt|
|
||||
next unless opt.advanced?
|
||||
val = mod.datastore[name] || opt.default
|
||||
tbl << [ name, opt.display_value(val), opt.required? ? "yes" : "no", opt.desc ]
|
||||
end
|
||||
|
||||
next if (!opt.advanced?)
|
||||
|
||||
val = mod.datastore[name] || opt.default.to_s
|
||||
desc = word_wrap(opt.desc, indent.length + 3)
|
||||
desc = desc.slice(indent.length + 3, desc.length)
|
||||
|
||||
output << pad + "Name : #{name}\n"
|
||||
output << pad + "Current Setting: #{val}\n"
|
||||
output << pad + "Description : #{desc}\n"
|
||||
}
|
||||
|
||||
return output
|
||||
return tbl.to_s
|
||||
end
|
||||
|
||||
# Dumps the evasion options associated with the supplied module.
|
||||
|
@ -446,25 +444,23 @@ class ReadableText
|
|||
# @param indent [String] the indentation to use.
|
||||
# @return [String] the string form of the information.
|
||||
def self.dump_evasion_options(mod, indent = '')
|
||||
output = ''
|
||||
pad = indent
|
||||
tbl = Rex::Ui::Text::Table.new(
|
||||
'Indent' => indent.length,
|
||||
'Columns' =>
|
||||
[
|
||||
'Name',
|
||||
'Current Setting',
|
||||
'Required',
|
||||
'Description'
|
||||
])
|
||||
|
||||
mod.options.sorted.each { |entry|
|
||||
name, opt = entry
|
||||
mod.options.sorted.each do |name, opt|
|
||||
next unless opt.evasion?
|
||||
val = mod.datastore[name] || opt.default
|
||||
tbl << [ name, opt.display_value(val), opt.required? ? "yes" : "no", opt.desc ]
|
||||
end
|
||||
|
||||
next if (!opt.evasion?)
|
||||
|
||||
val = mod.datastore[name] || opt.default || ''
|
||||
|
||||
desc = word_wrap(opt.desc, indent.length + 3)
|
||||
desc = desc.slice(indent.length + 3, desc.length)
|
||||
|
||||
output << pad + "Name : #{name}\n"
|
||||
output << pad + "Current Setting: #{val}\n"
|
||||
output << pad + "Description : #{desc}\n"
|
||||
}
|
||||
|
||||
return output
|
||||
return tbl.to_s
|
||||
end
|
||||
|
||||
# Dumps the references associated with the supplied module.
|
||||
|
|
|
@ -828,7 +828,7 @@ class Core
|
|||
end
|
||||
end
|
||||
|
||||
args.each { |name|
|
||||
args.each do |name|
|
||||
mod = framework.modules.create(name)
|
||||
|
||||
if (mod == nil)
|
||||
|
@ -836,7 +836,7 @@ class Core
|
|||
else
|
||||
show_options(mod)
|
||||
end
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
#
|
||||
|
@ -2600,9 +2600,9 @@ class Core
|
|||
# Tab completion for the unset command
|
||||
#
|
||||
# @param str [String] the string currently being typed before tab was hit
|
||||
# @param words [Array<String>] the previously completed words on the command line. words is always
|
||||
# at least 1 when tab completion has reached this stage since the command itself has been completed
|
||||
|
||||
# @param words [Array<String>] the previously completed words on the command
|
||||
# line. `words` is always at least 1 when tab completion has reached this
|
||||
# stage since the command itself has been completed.
|
||||
def cmd_unset_tabs(str, words)
|
||||
datastore = active_module ? active_module.datastore : self.framework.datastore
|
||||
datastore.keys
|
||||
|
|
Loading…
Reference in New Issue