noredink-ui/script/deprecated-modules-csv.py
2020-12-03 20:29:31 -06:00

43 lines
1.1 KiB
Python
Executable File

#!/usr/bin/env python
import csv
import json
import os.path as path
import re
import sys
HERE = path.realpath(path.abspath(path.join(path.dirname(__file__), '..')))
with open(path.join(HERE, 'elm.json'), 'r') as fh:
modules = json.load(fh)["exposed-modules"]
widgets = {}
for module in modules:
match = re.match(r'^(.+)\.V(\d+)$', module)
if match is None:
continue
widget, current_version = match.groups()
current_version = int(current_version)
if widget in widgets:
highest_version, rest = widgets[widget]
if current_version > highest_version:
rest.append(highest_version)
widgets[widget] = (current_version, rest)
else:
rest.append(current_version)
else:
widgets[widget] = (current_version, [])
writer = csv.writer(sys.stdout)
for (widget, (latest, deprecated)) in widgets.items():
for version in deprecated:
writer.writerow((
'{}.V{}'.format(widget, version),
'upgrade to V{}'.format(latest),
))
sys.stdout.close()