Skip to content

Commit

Permalink
[#3] fail gracefully
Browse files Browse the repository at this point in the history
  • Loading branch information
acrogenesis committed Oct 4, 2015
1 parent a6082e6 commit 04cb843
Showing 1 changed file with 17 additions and 11 deletions.
28 changes: 17 additions & 11 deletions bin/macchanger
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@

require 'optparse'
options = {}
VERSION = 1.0
VERSION = 1.1

OptionParser.new do |opts|
optparse = OptionParser.new do |opts|
opts.banner = 'Usage: macchanger [options] device'

opts.on('-v', '--version', 'Displays MacChanger version') do
Expand All @@ -24,8 +24,7 @@ OptionParser.new do |opts|
opts.on('-s', '--show', 'Show the MAC address, macchanger -s en0') do |s|
options[:show] = s
end

end.parse!
end

class MacChanger
def self.show(device)
Expand All @@ -39,7 +38,7 @@ class MacChanger

def self.valid?(mac)
unless mac.match(/^([0-9a-fA-F][0-9a-fA-F]:){5}([0-9a-fA-F][0-9a-fA-F])$/)
fail ArgumentError, 'Mac address is not valid'
fail OptionParser::InvalidArgument, 'Mac address is not valid'
end
end

Expand Down Expand Up @@ -71,11 +70,18 @@ class MacChanger
end
end

options[:device] = ARGV[0] or fail ArgumentError, "Device can't be blank"
begin
optparse.parse!
options[:device] = ARGV[0] or fail OptionParser::MissingArgument, 'device'

if options[:show]
puts "Your mac address is: #{MacChanger.show(options[:device])}"
else
MacChanger.valid?(options[:mac]) unless options[:random]
MacChanger.start(options)
if options[:show]
puts "Your mac address is: #{MacChanger.show(options[:device])}"
else
fail OptionParser::InvalidOption, 'MAC address or random option' if options[:mac].nil? && options[:random].nil?
MacChanger.valid?(options[:mac]) unless options[:random]
MacChanger.start(options)
end
rescue OptionParser::InvalidArgument, OptionParser::MissingArgument, OptionParser::InvalidOption => error
puts error
puts optparse
end

0 comments on commit 04cb843

Please sign in to comment.