@@_show_progress = v
end
+ @@_rate_limit = nil
+ def _rate_limit
+ @@_rate_limit
+ end
+ def _rate_limit=(v)
+ @@_rate_limit = v
+ end
+
module_function :client_id, :client_secret,
- :_show_progress, :_show_progress=
+ :_show_progress, :_show_progress=,
+ :_rate_limit, :_rate_limit=
module Command
autoload :Login, 'osdn/cli/command/login'
puts " --force-digest Calc local file digest forcely"
puts " --progress Force to show upload progress"
puts " --no-progress Force to hide upload progress"
+ puts " --bwlimit=RATE Limit bandwidth (in KB)"
end
def run
[ '--force-digest', GetoptLong::NO_ARGUMENT],
[ '--progress', GetoptLong::NO_ARGUMENT],
[ '--no-progress', GetoptLong::NO_ARGUMENT],
+ [ '--bwlimit', GetoptLong::REQUIRED_ARGUMENT ],
)
opts.each do |opt, arg|
case opt
@show_progress = true
when '--no-progress'
@show_progress = false
+ when '--bwlimit'
+ arg.to_i != 0 and
+ OSDN::CLI._rate_limit = arg.to_i * 1024
end
end
puts " --force-digest Calc local file digest forcely"
puts " --progress Force to show upload progress"
puts " --no-progress Force to hide upload progress"
+ puts " --bwlimit=RATE Limit bandwidth (in KB)"
end
def self.description
[ '--force-digest', GetoptLong::NO_ARGUMENT],
[ '--progress', GetoptLong::NO_ARGUMENT],
[ '--no-progress', GetoptLong::NO_ARGUMENT],
+ [ '--bwlimit', GetoptLong::REQUIRED_ARGUMENT ],
)
opts.each do |opt, arg|
case opt
@show_progress = true
when '--no-progress'
@show_progress = false
+ when '--bwlimit'
+ arg.to_i != 0 and
+ OSDN::CLI._rate_limit = arg.to_i * 1024
end
end
end
alias_method :get_orig, :get
def get(*args)
easy = get_orig(*args)
+
if ENV['CURL_CA_BUNDLE']
Ethon::Curl.set_option(:cainfo, ENV['CURL_CA_BUNDLE'], easy.handle)
else
Ethon::Curl.set_option(:cainfo, ca, easy.handle)
end
end
+
if OSDN::CLI._show_progress
Ethon::Curl.set_option(:noprogress, false, easy.handle)
-
else
Ethon::Curl.set_option(:noprogress, true, easy.handle)
end
+
+ if OSDN::CLI._rate_limit
+ Ethon::Curl.set_option(:max_send_speed_large, OSDN::CLI._rate_limit, easy.handle)
+ Ethon::Curl.set_option(:max_recv_speed_large, OSDN::CLI._rate_limit, easy.handle)
+ end
+
easy
end
end