1
0
mirror of https://github.com/github/choosealicense.com synced 2024-12-22 04:40:09 +01:00
choosealicense.com/script/check-approval

57 lines
1.2 KiB
Plaintext
Raw Normal View History

2016-01-18 16:16:40 -05:00
#!/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