Skip to content

Commit 24b62b5

Browse files
olivierntkeithamus
authored andcommittedApr 12, 2016
Adding internet check to bitbar version plugin (matryer#387)
* Adding internet check to bitbar version plugin - prevents showing and error when re-connecting to wifi * Fixed checkstyle error in bitbar version plugin * Simplified retry logic on connection error in bitbar version plugin * Removed obsolete require
1 parent 4987830 commit 24b62b5

File tree

1 file changed

+19
-5
lines changed

1 file changed

+19
-5
lines changed
 

‎BitBar/version.12h.rb

+19-5
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#!/usr/bin/env ruby
22
#
33
# <bitbar.title>BitBar Version</bitbar.title>
4-
# <bitbar.version>v0.1.0</bitbar.version>
4+
# <bitbar.version>v0.2.0</bitbar.version>
55
# <bitbar.author>Olivier Tille</bitbar.author>
66
# <bitbar.author.github>oliviernt</bitbar.author.github>
77
# <bitbar.image>http://i.imgur.com/9BrFhSJ.png</bitbar.image>
@@ -26,8 +26,22 @@
2626
# ?client_id=#{GITHUB_CLIENT_ID}&client_secret=#{GITHUB_CLIENT_SECRET}
2727

2828
def get_json
29-
url = "https://api.github.com/repos/matryer/bitbar/releases/latest"
30-
json_result = JSON.parse(Net::HTTP.get(URI(url)))
29+
url = URI("https://api.github.com/repos/matryer/bitbar/releases/latest")
30+
json_result = nil
31+
sleep_time = 0.5
32+
sleep_until = 16 # sleep 5x (0,5 * 2 ^ 5 == 16)
33+
while json_result.nil?
34+
begin
35+
json_result = JSON.parse(Net::HTTP.get(url))
36+
rescue => e
37+
sleep_time *= 2
38+
if sleep_time < sleep_until
39+
sleep sleep_time
40+
else
41+
throw e
42+
end
43+
end
44+
end
3145
json_result
3246
end
3347

@@ -48,8 +62,8 @@ def get_current_version(xml)
4862
end
4963

5064
begin
51-
current_version = get_current_version(get_xml)
5265
json_val = get_json
66+
current_version = get_current_version(get_xml)
5367
latest_version = json_val["tag_name"]
5468
outdated = Gem::Version.new(current_version) < Gem::Version.new(latest_version.sub!("v", ""))
5569
color = outdated ? "red" : "green"
@@ -63,5 +77,5 @@ def get_current_version(xml)
6377
rescue => _
6478
puts "BitBar Version Error | color=red"
6579
puts "---"
66-
puts "Content is currently unavailable. Please try resetting. | color=red"
80+
puts "Content is currently unavailable. Please try resetting or check your internet connection. | color=red"
6781
end

0 commit comments

Comments
 (0)
Please sign in to comment.