48 lines
703 B
Ruby
Executable File
48 lines
703 B
Ruby
Executable File
#!/usr/bin/env ruby
|
|
|
|
path = ARGV.shift || exit
|
|
data = File.read(path)
|
|
outp = ""
|
|
|
|
endc = 0
|
|
data.each_line do |line|
|
|
if(line =~ /^\s*module\s+[A-Z]/)
|
|
endc += 1
|
|
next
|
|
end
|
|
|
|
if(line =~ /^(\s*)include (.*)/)
|
|
spaces = $1
|
|
inc = $2
|
|
if (inc !~ /Msf/)
|
|
line = "#{spaces}include Msf::#{inc.strip}\n"
|
|
end
|
|
end
|
|
|
|
if(line =~ /^(\s*)class ([^\<]+)\s*<\s*(.*)/)
|
|
prefix = ""
|
|
spaces = $1
|
|
parent = $3
|
|
|
|
if(parent !~ /^Msf/)
|
|
prefix = "Msf::"
|
|
end
|
|
line = "#{spaces}class Metasploit3 < #{prefix}#{parent.strip}\n"
|
|
end
|
|
|
|
outp += line
|
|
end
|
|
|
|
|
|
|
|
endc.downto(1) do |idx|
|
|
i = outp.rindex("end")
|
|
outp[i, 4] = "" if i
|
|
end
|
|
|
|
outp.rstrip!
|
|
outp << "\n"
|
|
|
|
fd = File.open(path, "w")
|
|
fd.write(outp)
|
|
fd.close |