Skip to content

Commit 2de3987

Browse files
committed
Replace each with map to ensure metadata is stored
1 parent 4020b7e commit 2de3987

File tree

2 files changed

+7
-4
lines changed

2 files changed

+7
-4
lines changed

.github/workflows/module-info.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ on:
1111

1212
jobs:
1313
build:
14-
runs-on: ubuntu-16.04
14+
runs-on: ubuntu-18.04
1515
timeout-minutes: 40
1616

1717
services:

resources/extract_module_info.rc

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,9 +46,9 @@ _, total_time = record_time do
4646
module_sets, module_paths_timing = record_time { framework.modules.send(:module_set_by_type) }
4747
STDERR.puts "Extracted module paths in #{module_paths_timing}"
4848

49-
modules_metadata = module_sets.map do |(module_set_name, modules)|
49+
modules_metadata = module_sets.flat_map do |(module_set_name, modules)|
5050
module_paths = modules.keys
51-
module_paths.each do |module_path|
51+
module_paths.map do |module_path|
5252
module_folder = Msf::Modules::Loader::Base::DIRECTORY_BY_TYPE[module_set_name]
5353
full_module_path = "#{module_folder}/#{module_path}"
5454

@@ -123,8 +123,11 @@ _, total_time = record_time do
123123
end
124124
end
125125

126+
# Discard nil and sort by fullname for determinsitic output
127+
sorted_modules_metadata = modules_metadata.compact.sort_by { |metadata| metadata[:fullname] }
128+
126129
File.open(output_path, mode: 'w') do |output_file|
127-
result = JSON.pretty_generate(modules_metadata)
130+
result = JSON.pretty_generate(sorted_modules_metadata)
128131
# STDERR.puts "Writing results:"
129132
# STDOUT.puts result
130133
output_file.write(result)

0 commit comments

Comments
 (0)