1
0
mirror of https://github.com/clementine-player/Clementine synced 2024-12-27 01:54:20 +01:00
Clementine-audio-player-Mac.../dist/versionnumbers.py

49 lines
1016 B
Python

import rpm
import subprocess
deb_versions = [
"1.0",
"1.0.1",
"1.0.2",
"1.0.a",
"1.0~rc1",
"1.0~rc2",
"1.0-506-g044287b",
"1.0-1-g044287b",
]
rpm_versions = [
("1.0", "1"),
("1.0.1", "1"),
("1.0.2", "1"),
("1.0", "0.rc1"),
("1.0", "0.rc2"),
("1.0", "2.506-g044287b"),
]
def compare_deb(left, right):
if subprocess.call(["dpkg", "--compare-versions", left, "lt", right]) == 0:
return -1
if subprocess.call(["dpkg", "--compare-versions", left, "eq", right]) == 0:
return 0
if subprocess.call(["dpkg", "--compare-versions", left, "gt", right]) == 0:
return 1
raise Exception("Couldn't compare versions %s %s" % (left, right))
def compare_rpm(left, right):
return rpm.labelCompare(("1", left[0], left[1]), ("1", right[0], right[1]))
def sort_and_print(l, cmp):
for v in sorted(l, cmp=cmp):
if isinstance(v, tuple):
print "%s-%s" % v
else:
print v
print
sort_and_print(deb_versions, compare_deb)
sort_and_print(rpm_versions, compare_rpm)