79 lines
1.8 KiB
Ruby
79 lines
1.8 KiB
Ruby
|
#!/usr/bin/ruby -w
|
||
|
|
||
|
require 'getoptlong'
|
||
|
|
||
|
def help
|
||
|
puts "Usage: #{$0} [options]"
|
||
|
puts "\t-h --help\t\tthis help."
|
||
|
puts "\t-f --file\t\toutput file."
|
||
|
puts "\t-n --num\t\tcharset: 0123456789"
|
||
|
puts "\t-a --alpha\t\tcharset: abcdefghijklmnopqrstuvwxyz"
|
||
|
puts "\t-A --alphamaj\t\tcharset: ABCDEFGHIJKLMNOPQRSTUVWXYZ"
|
||
|
puts "\t-l --alphanum\t\tcharset: alpha + num"
|
||
|
puts "\t-l --alphanummaj\tcharset: alpha + alphamaj + num"
|
||
|
puts "\t-s --all\t\tcharset: alpha + alphamaj + num + !@#$+=.*"
|
||
|
puts "\t-c --custom"
|
||
|
puts "\nExample:\n"
|
||
|
puts "#{$0} -f stats -s"
|
||
|
puts "#{$0} -f stats -c \"0123abc+=\""
|
||
|
exit
|
||
|
end
|
||
|
|
||
|
ch_alpha = 'abcdefghijklmnopqrstuvwxyz'
|
||
|
ch_num = '0123456789'
|
||
|
ch_sp = '!@#$+=.*'
|
||
|
|
||
|
opts = GetoptLong.new(
|
||
|
[ '--help', '-h', GetoptLong::NO_ARGUMENT ],
|
||
|
[ '--file', '-f', GetoptLong::OPTIONAL_ARGUMENT],
|
||
|
[ '--all', '-s', GetoptLong::NO_ARGUMENT],
|
||
|
[ '--num', '-n', GetoptLong::NO_ARGUMENT],
|
||
|
[ '--alpha', '-a', GetoptLong::NO_ARGUMENT ],
|
||
|
[ '--alphamaj', '-A', GetoptLong::NO_ARGUMENT ],
|
||
|
[ '--alphanum', '-l', GetoptLong::NO_ARGUMENT ],
|
||
|
[ '--alphanummaj', '-L', GetoptLong::NO_ARGUMENT ],
|
||
|
[ '--custom', '-c', GetoptLong::OPTIONAL_ARGUMENT ]
|
||
|
)
|
||
|
|
||
|
charset = nil
|
||
|
filename = "stats_out"
|
||
|
|
||
|
opts.each do |opt, arg|
|
||
|
case opt
|
||
|
when '--help'
|
||
|
help
|
||
|
when '--file'
|
||
|
filename = arg
|
||
|
when '--num'
|
||
|
charset = ch_num
|
||
|
when '--alpha'
|
||
|
charset = ch_alpha
|
||
|
when '--alphamaj'
|
||
|
charset = ch_alpha.capitalize
|
||
|
when '--alphanum'
|
||
|
charset = ch_alpha + ch_num
|
||
|
when '--alphanummaj'
|
||
|
charset = ch_alpha.capitalize + ch_num
|
||
|
when '--all'
|
||
|
charset = ch_alpha + ch_alpha.capitalize + ch_num + ch_sp
|
||
|
when '--custom'
|
||
|
charset = arg
|
||
|
end
|
||
|
end
|
||
|
|
||
|
|
||
|
if charset == nil
|
||
|
help
|
||
|
end
|
||
|
|
||
|
|
||
|
fstat = File.open(filename, "w")
|
||
|
charset.each_byte do |c|
|
||
|
fstat.write("1=proba1[#{c.to_s}]\n")
|
||
|
charset.each_byte do |tmp|
|
||
|
fstat.write("1=proba2[#{c.to_s}*256+#{tmp.to_s}]\n")
|
||
|
end
|
||
|
end
|
||
|
fstat.close
|
||
|
|