diff --git a/Gemfile b/Gemfile index c5f2cc3b..f96bc371 100644 --- a/Gemfile +++ b/Gemfile @@ -2,3 +2,4 @@ source 'https://rubygems.org' gemspec :name => "github-linguist" gemspec :name => "github-linguist-grammars" gem 'byebug' if RUBY_VERSION >= '2.0' +gem 'licensor', :path => "../licensor" diff --git a/script/licensor b/script/licensor new file mode 100755 index 00000000..94309a3d --- /dev/null +++ b/script/licensor @@ -0,0 +1,43 @@ +#!/usr/bin/env ruby + +# TODO: push these changes to licensor gem + +require "bundler/setup" +require "licensor/cli" + +module Licensor + module Source + class Filesystem + attr_reader :type + + def initialize(glob, type: "directory") + @glob = glob + @type = type + end + + def enabled? + !Dir.glob(@glob).empty? + end + + def dependencies + Dir.glob(@glob).map do |directory| + puts "caching #{directory}" + Licensor::Dependency.new(directory, { + "type" => type, + "name" => File.basename(directory) + }) + end + end + end + end +end + +source = Licensor::Source::Filesystem.new("vendor/grammars/*/", type: "grammar") +config = Licensor::Configuration.new +config.sources << source + +if ARGV[0] == "verify" + Licensor::Command::Verify.new(config).run +else + Licensor::Command::Cache.new(config).run(force: true) +end diff --git a/vendor/licenses/config.yml b/vendor/licenses/config.yml new file mode 100644 index 00000000..08a33f6b --- /dev/null +++ b/vendor/licenses/config.yml @@ -0,0 +1,14 @@ +whitelist: + - apache-2.0 + - bsd-2-clause + - bsd-3-clause + - mit + +# These dependencies are explicitly ignored +ignored: + rubygem: + - bundler + +# These dependencies have been reviewed and approved. +reviewed: + rubygem: