diff --git a/Gemfile b/Gemfile index 03c970a9f..8379c51fd 100644 --- a/Gemfile +++ b/Gemfile @@ -3,6 +3,11 @@ source "https://rubygems.org" gem "github-pages" gem "jekyll-seo-tag" +group :development do + gem 'colored' + gem 'terminal-table' +end + group :test do gem 'html-proofer', '2.5.2' gem "rake" diff --git a/Gemfile.lock b/Gemfile.lock index c0b5f8ab9..e299b1e1f 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -166,12 +166,14 @@ PLATFORMS ruby DEPENDENCIES + colored github-pages html-proofer (= 2.5.2) jekyll-seo-tag nokogiri rake rspec + terminal-table BUNDLED WITH 1.11.2 diff --git a/script/check-approval b/script/check-approval new file mode 100755 index 000000000..c1a8b29c1 --- /dev/null +++ b/script/check-approval @@ -0,0 +1,56 @@ +#!/usr/bin/env ruby +# Checks if a given license meets the approval criteria to be added to choosealicense.com +# See https://github.com/github/choosealicense.com/blob/gh-pages/CONTRIBUTING.md#adding-a-license +# Usage: script/check-approval [SPDX LICENSE ID] + +require_relative '../spec/spec_helper' +require 'terminal-table' +require 'colored' + +# Display usage instructions +if ARGV.count != 1 + puts File.open(__FILE__).read.scan(/^# .*/)[0...3].join("\n").gsub(/^# /,"") +end + +class TrueClass + def to_s + "Yes".green + end +end + +class FalseClass + def to_s + "No".red + end +end + +license = ARGV[0].downcase.strip +approvals = { + "OSI": osi_approved_licenses, + "FSF": fsf_approved_licenses, + "OD": od_approved_licenses +} + +id, spdx = find_spdx(license) +rows = [] + +if spdx.nil? + id = "Invalid".red + name = "None".red +else + id = id.green + name = spdx["name"].green +end + +rows << ["SPDX ID", id] +rows << ["SPDX Name", name] + +approvals.each do |name, licenses| + rows << ["#{name} approved", licenses.include?(license)] +end + +rows << :separator +elligible = !!(spdx && approved_licenses.include?(license)) +rows << ["Elligible", elligible] + +puts Terminal::Table.new title: "License: #{license}", rows: rows