def execute(opts)
require 'optparse'
require 'uri'
require 'net/http'
key = KEY
opt = OptionParser.new
opt.on("-d [key]", "DirectAction request handler key") do |v| key = v end
begin
opt.parse!(opts)
rescue
show_usage(USAGE)
end
uri = opts.shift
pass = opts.shift
show_usage(USAGE) if uri.nil?
uri.gsub!(/\/\Z/, '')
uri = "http://#{uri}" unless /\Ahttp:\/\// === uri
uri = "#{uri}/#{KEY}/#{SWEEP}"
uri = URI.parse(uri)
Net::HTTP.version_1_2
Net::HTTP.start(uri.host, uri.port) do |http|
response = http.get(uri.path)
unless CGIKit::DirectAction.sweep_page?(response.body) then
show_error(SWEEP_NOT_AVAILABLE % uri.to_s)
end
end
unless pass then
system 'stty -echo'
print "Password: "
pass = gets.chomp
system 'stty echo'
puts
end
Net::HTTP.start(uri.host, uri.port) do |http|
response = http.post(uri.path,
"#{CGIKit::DirectAction::SWEEP_PASS_KEY}=#{pass}")
successed, failed = CGIKit::DirectAction.sweep_info(response.body)
puts "Deleted: #{successed}"
puts "Failed: #{failed}"
end
end