Skip to content

Commit 26fdd0a

Browse files
committed
remove distutls dependency.
1 parent 0cd37ee commit 26fdd0a

1 file changed

Lines changed: 28 additions & 6 deletions

File tree

code/default/launcher/update.py

Lines changed: 28 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
import sys
1010
import platform
1111
import uuid
12-
from distutils.version import LooseVersion
12+
1313

1414
try:
1515
from urllib.request import build_opener, HTTPSHandler, ProxyHandler
@@ -66,6 +66,27 @@ def version_to_bin(s):
6666
return reduce(lambda a, b: a << 8 | b, list(map(int, s.split("."))))
6767

6868

69+
def compare_versions(v1, v2):
70+
"""Compare two version strings and return -1, 0, or 1."""
71+
def parse_version(version):
72+
return [int(x) for x in version.split('.')]
73+
74+
parts1 = parse_version(v1)
75+
parts2 = parse_version(v2)
76+
77+
# Pad with zeros to make lengths equal
78+
max_len = max(len(parts1), len(parts2))
79+
parts1 += [0] * (max_len - len(parts1))
80+
parts2 += [0] * (max_len - len(parts2))
81+
82+
if parts1 < parts2:
83+
return -1
84+
elif parts1 > parts2:
85+
return 1
86+
else:
87+
return 0
88+
89+
6990
def download_file(url, file):
7091
try:
7192
xlog.info("download %s to %s", url, file)
@@ -262,20 +283,20 @@ def check_update():
262283
test_version, stable_version = versions[0][1], versions[1][1]
263284
if test_version != config.skip_test_version:
264285
if update_rule == "notice-test":
265-
if LooseVersion(current_version) < LooseVersion(test_version):
286+
if compare_versions(current_version, test_version) < 0:
266287
xlog.info("checked new test version %s", test_version)
267288
update_from_github.update_info = '{"type":"test", "version":"%s"}' % test_version
268289
elif update_rule == "test":
269-
if LooseVersion(current_version) < LooseVersion(test_version):
290+
if compare_versions(current_version, test_version) < 0:
270291
xlog.info("update to test version %s", test_version)
271292
update_from_github.update_version(test_version)
272293
if stable_version != config.skip_stable_version:
273294
if update_rule == "notice-stable":
274-
if LooseVersion(current_version) < LooseVersion(stable_version):
295+
if compare_versions(current_version, stable_version) < 0:
275296
xlog.info("checked new stable version %s", stable_version)
276297
update_from_github.update_info = '{"type":"stable", "version":"%s"}' % stable_version
277298
elif update_rule == "stable":
278-
if LooseVersion(current_version) < LooseVersion(stable_version):
299+
if compare_versions(current_version, stable_version) < 0:
279300
xlog.info("update to stable version %s", stable_version)
280301
update_from_github.update_version(stable_version)
281302
except IOError as e:
@@ -421,4 +442,5 @@ def get_uuid():
421442
#get_uuid()
422443
#check_update()
423444
#sys_tray.serve_forever()
424-
create_desktop_shortcut()
445+
# create_desktop_shortcut()
446+
print(compare_versions("2.1.1", "2.1.0"))

0 commit comments

Comments
 (0)