github.com/neilgarb/delve@v1.9.2-nobreaks/_scripts/latestver.py (about)

     1  #!/usr/bin/python
     2  import json
     3  import urllib
     4  import sys
     5  import re
     6  
     7  def splitver(x):
     8  	v = re.split(r'([^\d]+)', x)
     9  	v[0] = int(v[0])
    10  	if len(v) > 2:
    11  		v[2] = int(v[2])
    12  	if len(v) > 4:
    13  		v[4] = int(v[4])
    14  	# make rc/beta versions sort before normal versions
    15  	if len(v) > 3 and v[3] == '.':
    16  		v[3] = '~' 
    17  	elif len(v) == 3:
    18  		v.append('~')
    19  	return v
    20  
    21  ver = sys.argv[1]
    22  d = json.loads(urllib.urlopen('https://go.dev/dl/?mode=json&include=all').read())
    23  ds = sorted(d, reverse=True, key=lambda it: splitver(it['version'][2:]))
    24  for x in ds:
    25  	if x['version'][:len(ver)] == ver:
    26  		print x['version']
    27  		exit(0)