Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Deal properly with dashed lists in source files #20

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 7 additions & 1 deletion lib/dradis/plugins/nessus/field_processor.rb
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ def value(args={})
else
output = @nessus_object.try(name) || 'n/a'

if field == 'report_item.description' && output =~ /^ -/
if fields_with_lists.include?(field)
format_bullet_point_lists(output)
else
output
Expand All @@ -37,10 +37,16 @@ def value(args={})
end

private
def fields_with_lists
['report_item.description', 'report_item.solution']
end

def format_bullet_point_lists(input)
input.split("\n").map do |paragraph|
if paragraph =~ /^ - (.*)$/m
'* ' + $1.gsub(/ /, '').gsub(/\n/, ' ')
elsif paragraph =~ /^- (.*)$/m
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We could use a single regex for both cases 🤔, checking for an optional white space

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

May be with (^ *- (.*)$/m (http://rubular.com/r/iwSdcsGiPh)
Or we want to check only for exactly 0 or 2 whitespace cases?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's a much more elegant solution! Also, I bookmarked rubular to use in the future as I am not great at regex. Thank you!

'* ' + $1.gsub(/ /, '').gsub(/\n/, ' ')
else
paragraph
end
Expand Down