From e09a770ff294c254d0367d8040fcb43365865578 Mon Sep 17 00:00:00 2001 From: Martin Fischer Date: Fri, 26 Nov 2021 21:35:49 +0100 Subject: initial commit --- build.py | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 75 insertions(+) create mode 100755 build.py (limited to 'build.py') diff --git a/build.py b/build.py new file mode 100755 index 0000000..2fd4c26 --- /dev/null +++ b/build.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 +import glob +import json +import os +import shutil + +import toml + + +def get_features(dirname): + features = {} + for feature in sorted(os.listdir('caniuse.rs/data/' + dirname)): + with open('caniuse.rs/data/' + dirname + '/' + feature) as f: + name = feature.split('.')[0] + features[name] = toml.load(f) + return features + + +with open('caniuse.rs/data/versions.toml') as f: + versions = toml.load(f) + +for version, data in versions.items(): + try: + data['features'] = get_features(version) + except FileNotFoundError: + pass + +unstable_features = get_features('unstable') + + +os.makedirs('target', exist_ok=True) +shutil.copy('style.css', 'target') + +with open('target/data.json', 'w') as f: + json.dump(dict(unstable=unstable_features, versions=versions), f) + + +def write_features(f, features): + f.write('') + + +with open('target/index.html', 'w') as f: + f.write('') + f.write('') + f.write('Rust features') + f.write('

Rust features

') + f.write('') + + # TODO: sort by T-lang and T-lib + f.write('

Unstable features

') + write_features(f, unstable_features) + + for version, data in reversed(list(versions.items())): + f.write('

{}

'.format(version)) + if 'features' in data: + write_features(f, data['features']) + +# TODO: generate HTML -- cgit v1.2.3