From c9b8cbf3565675a056ad4e9b57cb4f84020e7680 Mon Sep 17 00:00:00 2001 From: Meghan Denny Date: Mon, 19 Jul 2021 07:08:30 -0700 Subject: [PATCH] add data from the blue oak council --- README.md | 1 + generate.zig | 23 ++++++ src/lib.zig | 203 +++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 227 insertions(+) diff --git a/README.md b/README.md index 096264c12515e5b09b8c522577c4bf6fa43437df..bb9473cb19a98c4a0a203883524747f67396e3de 100644 --- a/README.md +++ b/README.md @@ -4,6 +4,7 @@ generated data from https://spdx.org/licenses/. includes extra declarations for OSI approved licenses. +includes extra declarations for https://blueoakcouncil.org/list classes. ## License MIT diff --git a/generate.zig b/generate.zig index b94d273144decca1d4dac2ac05010400bf07f3f1..bc95de3cd1246cb708c4d366c6aa283a42a5d70e 100644 --- a/generate.zig +++ b/generate.zig @@ -40,6 +40,29 @@ pub fn main() !void { } try w.writeAll("};\n"); } + + { + std.log.info("blueoak", .{}); + const val = try simple_fetch(alloc, "https://blueoakcouncil.org/list.json"); + try w.writeAll("\n"); + try w.writeAll("// Blue Oak Council data generated from https://blueoakcouncil.org/list\n"); + try w.writeAll("//\n"); + try w.print("// Last generated from version {s}\n", .{val.get("version").?.String}); + try w.writeAll("//\n"); + + try w.writeAll("\n"); + try w.writeAll("pub const blueoak = struct {\n"); + for (val.get("ratings").?.Array) |rating| { + try w.print(" pub const {s} = &[_][]const u8{{\n", .{std.ascii.allocLowerString(alloc, rating.get("name").?.String)}); + for (rating.get("licenses").?.Array) |lic| { + try w.print(" \"{s}\",\n", .{ + lic.get("id").?.String, + }); + } + try w.print(" }};\n", .{}); + } + try w.writeAll("};\n"); + } } pub fn simple_fetch(alloc: *std.mem.Allocator, url: []const u8) !json.Value { diff --git a/src/lib.zig b/src/lib.zig index 2cd420061c3a64c168376eea7ffeb315887c7a1c..24199a89b0ba09396d83bf7697db34c1975249fd 100644 --- a/src/lib.zig +++ b/src/lib.zig @@ -608,3 +608,206 @@ pub const osi = &[_][]const u8{ "ZPL-2.1", "Zlib", }; + +// Blue Oak Council data generated from https://blueoakcouncil.org/list +// +// Last generated from version 9 +// + +pub const blueoak = struct { + pub const model = &[_][]const u8{ + "BlueOak-1.0.0", + }; + pub const gold = &[_][]const u8{ + "BSD-2-Clause-Patent", + }; + pub const silver = &[_][]const u8{ + "ADSL", + "Apache-2.0", + "APAFML", + "BSD-1-Clause", + "BSD-2-Clause", + "BSD-2-Clause-FreeBSD", + "BSD-2-Clause-NetBSD", + "BSD-2-Clause-Views", + "BSL-1.0", + "DSDP", + "ECL-1.0", + "ECL-2.0", + "ImageMagick", + "ISC", + "Linux-OpenIB", + "MIT", + "MIT-Modern-Variant", + "MS-PL", + "MulanPSL-1.0", + "Mup", + "PostgreSQL", + "Spencer-99", + "UPL-1.0", + "Xerox", + }; + pub const bronze = &[_][]const u8{ + "0BSD", + "AFL-1.1", + "AFL-1.2", + "AFL-2.0", + "AFL-2.1", + "AFL-3.0", + "AMDPLPA", + "AML", + "AMPAS", + "ANTLR-PD", + "ANTLR-PD-fallback", + "Apache-1.0", + "Apache-1.1", + "Artistic-2.0", + "Bahyph", + "Barr", + "BSD-3-Clause", + "BSD-3-Clause-Attribution", + "BSD-3-Clause-Clear", + "BSD-3-Clause-LBNL", + "BSD-3-Clause-Modification", + "BSD-3-Clause-No-Nuclear-License-2014", + "BSD-3-Clause-No-Nuclear-Warranty", + "BSD-3-Clause-Open-MPI", + "BSD-4-Clause", + "BSD-4-Clause-Shortened", + "BSD-4-Clause-UC", + "BSD-Source-Code", + "bzip2-1.0.5", + "bzip2-1.0.6", + "CC0-1.0", + "CNRI-Jython", + "CNRI-Python", + "CNRI-Python-GPL-Compatible", + "Cube", + "curl", + "eGenix", + "Entessa", + "FTL", + "HTMLTIDY", + "IBM-pibs", + "ICU", + "Info-ZIP", + "Intel", + "JasPer-2.0", + "Libpng", + "libpng-2.0", + "libtiff", + "LPPL-1.3c", + "MIT-0", + "MIT-advertising", + "MIT-open-group", + "MIT-CMU", + "MIT-enna", + "MIT-feh", + "MITNFA", + "MTLL", + "MulanPSL-2.0", + "Multics", + "Naumen", + "NCSA", + "Net-SNMP", + "NetCDF", + "NTP", + "OLDAP-2.0", + "OLDAP-2.0.1", + "OLDAP-2.1", + "OLDAP-2.2", + "OLDAP-2.2.1", + "OLDAP-2.2.2", + "OLDAP-2.3", + "OLDAP-2.4", + "OLDAP-2.5", + "OLDAP-2.6", + "OLDAP-2.7", + "OLDAP-2.8", + "OML", + "OpenSSL", + "PHP-3.0", + "PHP-3.01", + "Plexus", + "PSF-2.0", + "Python-2.0", + "Ruby", + "Saxpath", + "SGI-B-2.0", + "SMLNJ", + "SWL", + "TCL", + "TCP-wrappers", + "Unicode-DFS-2015", + "Unicode-DFS-2016", + "Unlicense", + "VSL-1.0", + "W3C", + "X11", + "XFree86-1.1", + "Xnet", + "xpp", + "Zlib", + "zlib-acknowledgement", + "ZPL-2.0", + "ZPL-2.1", + }; + pub const lead = &[_][]const u8{ + "AAL", + "Adobe-2006", + "Afmparse", + "Artistic-1.0", + "Artistic-1.0-cl8", + "Artistic-1.0-Perl", + "Beerware", + "blessing", + "Borceux", + "CECILL-B", + "ClArtistic", + "Condor-1.1", + "Crossword", + "CrystalStacker", + "diffmark", + "DOC", + "EFL-1.0", + "EFL-2.0", + "Fair", + "FSFUL", + "FSFULLR", + "Giftware", + "HPND", + "IJG", + "Leptonica", + "LPL-1.0", + "LPL-1.02", + "MirOS", + "mpich2", + "NASA-1.3", + "NBPL-1.0", + "Newsletr", + "NLPL", + "NRL", + "OGTSL", + "OLDAP-1.1", + "OLDAP-1.2", + "OLDAP-1.3", + "OLDAP-1.4", + "psutils", + "Qhull", + "Rdisc", + "RSA-MD", + "Spencer-86", + "Spencer-94", + "TU-Berlin-1.0", + "TU-Berlin-2.0", + "Vim", + "W3C-19980720", + "W3C-20150513", + "Wsuipa", + "WTFPL", + "xinetd", + "Zed", + "Zend-2.0", + "ZPL-1.1", + }; +}; -- 2.54.0